Добрый день! Есть ли возможность открыть файл xml в excel в виде текста с тегами, а не в виде таблицы. Как если бы xml был открыт через блокнот.
Файл прикладывать нет смысла мне кажется, по этому прикладываю скиншот, как файл открывается:
и мне хотелось бы видеть открытый файл:
PS. У меня куча xml файлов, из которых нужно удалить одну строчку (строку текста, а не строку таблицы). Хочу их с помощью макроса открыть в текстовом формате и удалить ненужную мне строку. Возможно кто-то подскажет способ легче.
Добрый день! Есть ли возможность открыть файл xml в excel в виде текста с тегами, а не в виде таблицы. Как если бы xml был открыт через блокнот.
Файл прикладывать нет смысла мне кажется, по этому прикладываю скиншот, как файл открывается:
и мне хотелось бы видеть открытый файл:
PS. У меня куча xml файлов, из которых нужно удалить одну строчку (строку текста, а не строку таблицы). Хочу их с помощью макроса открыть в текстовом формате и удалить ненужную мне строку. Возможно кто-то подскажет способ легче.MaryL
Вот файл XML (взяла маленький пример, потому что мои XMLки очень тяжелые, но смысл от упрощения не потерялся) Нужно удалить строку 3 (<cafe name ="Ромашка">) и соответственно предпоследнюю строку (</cafe>).
Вот файл XML (взяла маленький пример, потому что мои XMLки очень тяжелые, но смысл от упрощения не потерялся) Нужно удалить строку 3 (<cafe name ="Ромашка">) и соответственно предпоследнюю строку (</cafe>).MaryL
Жмете кнопку, выбираете папку с вашими файлами xml [vba]
Код
Sub ViaDOM() Dim sFolder$, sXmlFile$, sXml$ Dim cafe 'As IXMLDOMElement Dim food 'As IXMLDOMElement With Application.FileDialog(msoFileDialogFolderPicker) .AllowMultiSelect = False If .Show Then sFolder = .SelectedItems(1) Else Exit Sub End With sXmlFile = Dir$(sFolder & "\*.xml") With CreateObject("MSXML2.DOMDocument.6.0") 'New MSXML2.DOMDocument60 Do While sXmlFile <> "" .validateOnParse = False .Load sXmlFile sXml = .xml For Each cafe In .SelectNodes("//cafe") For Each food In cafe.ChildNodes cafe.ParentNode.appendChild food Next cafe.ParentNode.RemoveChild cafe Next If sXml <> .xml Then .Save sXmlFile Else Debug.Print "в Файле"; sXmlFile; " элемент cafe не найден" End If sXmlFile = Dir$() Loop End With End Sub
[/vba]
Жмете кнопку, выбираете папку с вашими файлами xml [vba]
Код
Sub ViaDOM() Dim sFolder$, sXmlFile$, sXml$ Dim cafe 'As IXMLDOMElement Dim food 'As IXMLDOMElement With Application.FileDialog(msoFileDialogFolderPicker) .AllowMultiSelect = False If .Show Then sFolder = .SelectedItems(1) Else Exit Sub End With sXmlFile = Dir$(sFolder & "\*.xml") With CreateObject("MSXML2.DOMDocument.6.0") 'New MSXML2.DOMDocument60 Do While sXmlFile <> "" .validateOnParse = False .Load sXmlFile sXml = .xml For Each cafe In .SelectNodes("//cafe") For Each food In cafe.ChildNodes cafe.ParentNode.appendChild food Next cafe.ParentNode.RemoveChild cafe Next If sXml <> .xml Then .Save sXmlFile Else Debug.Print "в Файле"; sXmlFile; " элемент cafe не найден" End If sXmlFile = Dir$() Loop End With End Sub
Я перенесла строку With CreateObject("MSXML2.DOMDocument.6.0") внутрь цикла. Макрос заработал. Но теперь он выдает сообщения, что искомый элемент в файле не найден (хотя он есть, он его не видит).
Я перенесла строку With CreateObject("MSXML2.DOMDocument.6.0") внутрь цикла. Макрос заработал. Но теперь он выдает сообщения, что искомый элемент в файле не найден (хотя он есть, он его не видит).MaryL