У меня есть таблица доступа, которая была первоначально импортирована из XML. Когда я его экспортирую, у меня нет той же структуры XML, что и исходная таблица XML.Экспорт таблицы доступа в XML с помощью VBA
оригинальная импортирована таблица выглядит следующим образом:
<?xml version="1.0" standalone="true"?>
<profiling>
<program>
<name>118CDSpro</name>
<p1on>1</p1on>
<p1tool>36</p1tool>
<p2on>OFF</p2on>
<cut>OFF</cut>
<rule>OFF</rule>
<desc>118 Clad DirectSet Profile</desc>
<pic>akv.bmp</pic>
<ten>dilec_F</ten>
</program>
<profiling/>
Это то, что я получаю в экспорте:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot generated="2016-06-27T12:16:29" xmlns:od="urn:schemas microsoft-com:officedata">
<Profiling>
<name>Din_C92S_pro2</name>
<p1on>1</p1on>
<p1tool>40</p1tool>
<p2on>OFF</p2on>
<cut>OFF</cut>
<rule>OFF</rule>
<desc>Inswing Door Sash Profile 2 (Storm)</desc>
<ten>dilec_F</ten>
</Profiling>
</dataroot>
Я думаю, что проблема заключается в файл .xsl, но я новый к VBA и не уверены в том, как он используется.
Этот код должен быть очень точен в оригинальном формате.
Любые предложения были бы очень признательны.
Вариант 2 Код:
Sub ProfileXML2()
' RAW XML EXPORT
Application.ExportXML acExportTable, "Profiling", "C:\MyData\Crafter 0610\Crafter\MACHINE\SCHEMAS\ProfileExport.xml"
' TRANSFORM RAW XML (OPTION 2 - full XSLT processor)
Dim xmlDoc As Object, xslDoc As Object, newDoc As Object
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
Set xslDoc = CreateObject("MSXML2.DOMDocument")
Set newDoc = CreateObject("MSXML2.DOMDocument")
' LOAD XML AND XSL FILES
xmlDoc.Load "C:\MyData\Crafter 0610\Crafter\MACHINE\SCHEMAS\ProfileExport.xml"
xmlDoc.async = False
xslDoc.Load "C:\MyData\Crafter 0610\Crafter\MACHINE\SCHEMAS\ProfilingSchema.xsl"
xslDoc.async = False
' TRANSFORM SOURCE TO FINAL
xmlDoc.transformNodeToObject xslDoc, newDoc
newDoc.Save "C:\MyData\Crafter 0610\Crafter\DATA\ProfilingTest.xml"
Set newDoc = Nothing
Set xslDoc = Nothing
Set xmlDoc = Nothing
End Sub
Я тестировал оба варианта, и первый вариант работал отлично, кроме того, что не было отступов, которые, как я считаю, действительно не влияют на таблицу данных XML. Второй вариант дал мне сообщение об ошибке: «В XML-документе разрешен только один элемент верхнего уровня». Не имеет значения, кроме моих собственных знаний, поскольку первый вариант отлично работает. –
Отлично! Пожалуйста, примите, если ответ помог. Второй вариант будет отступ правильно. Я не могу воссоздать эту ошибку. Убедитесь, что пути указывают на правильность файлов. – Parfait
Я все еще пытаюсь найти разницу между ответами и комментариями. Я добавил кое-что к моему первоначальному вопросу относительно варианта 2 относительно того, что что-то неправильно закодировано. –