如何将 xml 和 xml-样式表节点添加到 VBA 中的 XML 文件?
How to add xml and xml-stylesheet nodes to an XML file in VBA?
我正在使用 Access VBA 创建一个 XML 文件。
Dim dDokument As MSXML2.DOMDocument60
Set dDokument = New MSXML2.DOMDocument60
Dim environmentalDataNode As IXMLDOMElement
Set environmentalDataNode = dDokument.createElement("mainnode")
'...Adding some stuff
Call dDokument.save("c:\Temp\test.xml")
这写了一个很好的 XML 文件,除了我必须在 XML.
的开头有这两行
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://secure.umweltbundesamt.at/h2o/xml/uba_schnittstellen.xslt"?>
我使用上面的代码时没有写。
那么,如何将 XML 和 xml-样式表节点添加到我的 DOMDocument60 中?
<?xml-stylesheet type="text/xsl" href="https://secure.umweltbundesamt.at/h2o/xml/uba_schnittstellen.xslt"?>
是您可以创建的处理指令,例如Set pi = dDokument.createProcessingInstruction("xml-stylesheet", "type=""text/xsl"" href=""https://secure.umweltbundesamt.at/h2o/xml/uba_schnittstellen.xslt""")
(我希望我有正确的 VB 语法来转义双引号和赋值)然后用例如插入dDokument.insertBefore(pi, dDocument.documentElement)
.
您显示的第一项是 XML 声明。它通常不是使用 DOM 方法作为节点创建的,而是在文档树的 serialization/saving 期间添加的,就像 save
方法所做的那样。难道你没有通过在最后使用 save()
添加 XML 声明(使用默认编码 UTF-8)吗?
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms755439(v=vs.85) 建议 XML 声明,虽然在技术上不是处理指令,但在 MSXML API 的上下文中,仍然可以使用 Set dec = dDocument.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""")
(当然还要插入 dDocument.insertBefore(dec, dDocument.firstChild)
)。
我正在使用 Access VBA 创建一个 XML 文件。
Dim dDokument As MSXML2.DOMDocument60
Set dDokument = New MSXML2.DOMDocument60
Dim environmentalDataNode As IXMLDOMElement
Set environmentalDataNode = dDokument.createElement("mainnode")
'...Adding some stuff
Call dDokument.save("c:\Temp\test.xml")
这写了一个很好的 XML 文件,除了我必须在 XML.
的开头有这两行<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://secure.umweltbundesamt.at/h2o/xml/uba_schnittstellen.xslt"?>
我使用上面的代码时没有写。
那么,如何将 XML 和 xml-样式表节点添加到我的 DOMDocument60 中?
<?xml-stylesheet type="text/xsl" href="https://secure.umweltbundesamt.at/h2o/xml/uba_schnittstellen.xslt"?>
是您可以创建的处理指令,例如Set pi = dDokument.createProcessingInstruction("xml-stylesheet", "type=""text/xsl"" href=""https://secure.umweltbundesamt.at/h2o/xml/uba_schnittstellen.xslt""")
(我希望我有正确的 VB 语法来转义双引号和赋值)然后用例如插入dDokument.insertBefore(pi, dDocument.documentElement)
.
您显示的第一项是 XML 声明。它通常不是使用 DOM 方法作为节点创建的,而是在文档树的 serialization/saving 期间添加的,就像 save
方法所做的那样。难道你没有通过在最后使用 save()
添加 XML 声明(使用默认编码 UTF-8)吗?
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms755439(v=vs.85) 建议 XML 声明,虽然在技术上不是处理指令,但在 MSXML API 的上下文中,仍然可以使用 Set dec = dDocument.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""")
(当然还要插入 dDocument.insertBefore(dec, dDocument.firstChild)
)。