我正在使用OpenXML导入XML并将其转换为Excel:
Workbooks.OpenXML Filename:=sPath, Stylesheets:=Array(1)
在XML文档中,我插入样式表引用(因为它们不存在):
<?xml-stylesheet type='text/xsl' href='STIG_ckl.xsl'?>
但是,我想有一种方法可以使用样式表,而无需在XML文档本身中使用它。
使用OpenXML,&#34;数组(1)&#34;使用XML中第一个引用的样式表。
但是我想给它一个完全独立于XML的样式表,例如:(但这不起作用)
Workbooks.OpenXML Filename:=sPath, Stylesheets:=sPathToXSL
感谢。肖恩。
答案 0 :(得分:0)
考虑直接将XSLT应用于XML,然后导入生成的XML。回想一下,XSLT是一种专门用于处理XML文档的专用语言,可以在样式表声明之外使用。 VBA配备了使用MSXML对象的XSLT处理器:
Sub XSLTransform()
' SET VBA REFERENCE MSXML v3, v6'
Dim xmldoc As New MSXML2.DOMDocument
Dim xslDoc As New MSXML2.DOMDocument
Dim newDoc As New MSXML2.DOMDocument
' LOAD XML AND XSL FILES '
xslDoc.async = False
xmlDoc.Load "C:\Path\To\InputXML.xml"
xslDoc.async = False
xslDoc.Load "C:\Path\To\XSLT_Script.xml"
' TRANSFORM XML '
xmldoc.transformNodeToObject xslDoc, newDoc
' SAVE OUTPUT '
newDoc.Save "C:\Path\To\OutputXML.xml"
Workbooks.OpenXML Filename:="C:\Path\To\OutputXML.xml"
End Sub