我正在更新代码以使用MSXML3.0中的MSXML6.0.但是,我注意到,对于MSXML3.0,默认的"SelectionLanguage"是"XSL Pattern",而MSXML6.0只支持XPath.我担心此更改会在查询语法中引入差异.
有人可以列出这两种语法之间的语法差异吗?
我需要解析数百个具有相同结构的 XML 文件,如下所示:
\n\n<?xml version="1.0" encoding="UTF-8"?>\n <Concepts>\n <ConceptModel name="food">\n <Filters>\n <Filter type="CC"/>\n </Filters>\n <Queries>\n <Query lang="EN">(cheese, bread, wine)</Query>\n <Query lang="DE">(K\xc3\xa4se, Brot, Wein)</Query>\n <Query lang="FR">(fromaige, pain, vin)</Query>\n </Queries>\n </ConceptModel>\n </Concepts>\nRun Code Online (Sandbox Code Playgroud)\n\n我在互联网上阅读了几篇文章和帖子,如下所示,但我无法想出解决方案:
\n\n\n\n到目前为止我正在做:
\n\n\n\n<?xml version="1.0" encoding="UTF-8"?>\n <Concepts>\n <ConceptModel name="food">\n <Filters>\n <Filter type="CC"/>\n </Filters>\n <Queries>\n <Query lang="EN">(cheese, bread, wine)</Query>\n <Query lang="DE">(K\xc3\xa4se, Brot, Wein)</Query>\n <Query lang="FR">(fromaige, pain, vin)</Query>\n </Queries>\n </ConceptModel>\n </Concepts>\nRun Code Online (Sandbox Code Playgroud)\n\n这段代码似乎可以被VBA理解,但它不读取内容。循环不会被读取,这意味着(我猜)查询根本没有循环。事实证实了这一点Msgbox "how many queries" …
我需要使用 VBA 从 XML 中获取不同的属性名称。
这是我的代码。
sub test()
Dim XMLFile As Object
Dim XMLFileName As String
Set XMLFile = CreateObject("Microsoft.XMLDOM")
XMLFileName = "C:\Users\Input.xml"
XMLFile.async = False
XMLFile.Load (XMLFileName)
XMLFile.validateOnParse = False
Dim mainnode As Object
Dim node As Object
Set mainnode = XMLFile.SelectNodes("//Elements")
For Each node In mainnode
For Each child In node.ChildNodes
Debug.Print child.BaseName
Dim kiddo As Object
For Each kiddo In child.ChildNodes
Debug.Print kiddo.BaseName
Next kiddo
Next child
Next node
End sub
Run Code Online (Sandbox Code Playgroud)
这是示例 XML。我需要num从 XML 中获取属性名称。 …