Я пытался в течение 3 недель использовать файл XML в Access.Я попробовал несколько тактик, таких как преобразование в CSV и наличие связанной таблицы, но предпочел сгладить XML, а затем импортировать его с помощью VBA.Я видел много полезных примеров и многому научился, но ни один из них не позволил мне завершить работу.Я немного новичок.Это важно, я понимаю, так как мне нужно взять XML-файл большего размера, поэтому я буду приспосабливать XSLT к следующему большему файлу, вдохновленный вашей помощью.
Фрагмент XML здесь:
<?xml version="1.0" encoding="UTF-8"?>
<STOREITEMS><PRODUCT ITEM="R7876" NAME="Gloves Pair">
<STOCK>No Stock.</STOCK></PRODUCT>
<PRODUCT ITEM="BR122293" NAME="Silver Duo Balls">
<STOCK>In Stock</STOCK></PRODUCT>
<PRODUCT ITEM="cloneboyb" NAME="Cast Your Own Kit">
<STOCK>In Stock</STOCK></PRODUCT>
<PRODUCT ITEM="ASTRO" NAME="Astroglide">
<STOCK>In Stock</STOCK></PRODUCT>
<PRODUCT ITEM="3002028110" NAME="Translucence Pink">
<STOCK>In Stock</STOCK></PRODUCT>
<PRODUCT ITEM="0340" NAME="Cream 82g Lubricant">
<STOCK>No Stock.</STOCK></PRODUCT>
</STOREITEMS>
Для совместимости с Access мне нужно:
<?xml version="1.0" encoding="UTF-8"?>
<STOCK>
<PRODUCT>
<ITEM>R7876</ITEM>
<NAME>Gloves Pair</NAME>
<STOCK>No Stock.</STOCK>
</PRODUCT>
<PRODUCT>
<ITEM>BR122293</ITEM>
<NAME>Silver Duo Balls</NAME>
<STOCK>In Stock</STOCK>
</PRODUCT>
<PRODUCT>
<ITEM>cloneboyb</ITEM>
<NAME>Cast Your Own Kit</NAME>
<STOCK>In Stock</STOCK>
</PRODUCT>
<PRODUCT>
<ITEM>ASTRO</ITEM>
<NAME>Astroglide</NAME>
<STOCK>In Stock</STOCK>
</PRODUCT>
<PRODUCT>
<ITEM>3002028110</ITEM>
<NAME>Translucence Pink</NAME>
<STOCK>In Stock</STOCK>
</PRODUCT>
<PRODUCT>
<ITEM>0340</ITEM>
<NAME>Cream 82g Lubricant</NAME>
<STOCK>No Stock.</STOCK>
</PRODUCT>
</STOCK>
Большая часть того, что я пробовал, это адаптация вещей, которые я видел здесь, поэтому я нев частности, есть отправная точка.
Сценарий VBA, который я использую для применения преобразования и импорта нового XML-файла, выглядит следующим образом:
Dim domIn As DOMDocument30
Dim domOut As DOMDocument30
Dim domStylesheet As DOMDocument30
Dim xFile As String
Dim StyleSheet As String
Dim NewStock As String
StyleSheet = "path to XSL"
xFile = "path to xml"
NewStock = "path to intended csv"
Set domIn = New DOMDocument30
domIn.async = False
'Open the ADO xml document
If domIn.Load(xFile) Then
'Load the stylesheet
Set domStylesheet = New DOMDocument30
domStylesheet.Load StyleSheet
'Apply the transform
If Not domStylesheet Is Nothing Then
Set domOut = New DOMDocument30
domIn.transformNodeToObject domStylesheet, domOut
'Save the output
domOut.Save NewStock
'Import the saved document into Access
'Application.ImportXML NewStock
End If
End If
'Cleanup
Set domIn = Nothing
Set domOut = Nothing
Set domStylesheet = Nothing
MsgBox "done!", , "ImportXMLFromADO"
Я с нетерпением жду указателей и благодарюВы заранее.