如何将 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))。