#xml #vba #file-rename
#xml #vba #файл-переименовать
Вопрос:
Мне нужно отредактировать XML-документ в VBA, и мне нравится сохранять исходный xml (ppp.xml ) и отдельно новый отредактированный файл (который я хочу вызвать pppnew.xml ), в основном без обновления исходного файла. Поскольку я являюсь базовым пользователем, я начал со следующего фрагмента кода:
Sub editxml()
Dim Obj As MSXML2.DOMDocument
Dim xmlpath As String
Set Obj = New DOMDocument
Obj.async = False
Obj.validateOnParse = False
xmlpath = "C:UsersxxxDesktopppp.xml"
Obj.SetProperty "SelectionNamespaces", "xmlns:ns0='http://update.DocumentTypes.Schema.ppp.Xml'"
If Obj.Load(xmlpath) = True Then
MsgBox "File XML uploaded"
Else
MsgBox "File XML not uploaded"
Exit Sub
End If
'My code follows here
Obj.Save xmlpath
End sub
Я попытался отредактировать следующую строку кода
SelectionNamespaces", "xmlns:ns0='http://update.DocumentTypes.Schema.ppp.Xml'
Изменив его на
SelectionNamespaces", "xmlns:ns0='http://pppnew.Xml'
Но это не работает: код обновляет исходный файл, который я хочу сохранить неотредактированным.
Ответ №1:
Фактически вы сохраняете свои изменения в ТОМ ЖЕ файле
Изменить
Obj.Save xmlpath
Для
new_xmlpath = "C:UsersxxxDesktopnew.xml"
Obj.Save new_xmlpath
Комментарии:
1. Спасибо! Нужно ли мне также редактировать строку «‘SelectionNameSpace»‘ или просто оставить ее исправленной?
2. Если начальный XML-файл не имеет определенной ВАМИ структуры, а результирующий XML сохраняет соответствие исходной схеме и пространствам имен, я предлагаю вам НЕ изменять это свойство. Я настоятельно рекомендую вам сначала немного узнать о том, что такое схемы и пространства имен, чтобы лучше понять, как работает XML
3. Спасибо за ваш ответ, не могли бы вы предложить мне хороший источник для начала?