相关疑难解决方法(0)

XSL Pattern和XPath在语法上有什么区别?

我正在更新代码以使用MSXML3.0中的MSXML6.0.但是,我注意到,对于MSXML3.0,默认的"SelectionLanguage"是"XSL Pattern",而MSXML6.0只支持XPath.我担心此更改会在查询语法中引入差异.

有人可以列出这两种语法之间的语法差异吗?

xslt xpath

8
推荐指数
2
解决办法
3123
查看次数

使用VBA解析XML文件

我有一个XML文件,其结构类似于:

<egh_eval>
<eval_set>
    <eval_id>FLOAT</eval_id>
    <eval_d>
        <height>INT</height>
        <weight>INT</weight>
    </eval_d>
    <eval_e>
        <height>INT</height>
        <weight>INT</weight>
    </eval_e>
    <eval_cred>
        <credit>FLOAT</credit>
    </eval_cred>
</eval_set>
Run Code Online (Sandbox Code Playgroud)

我需要解析完整的文件并将其放在表格中.(注意:eval_d和eval_e实际上每个都有超过一百个属性).我尝试使用MSXML2,但是当我尝试解析文件时,我遇到了问题.通过使用在回答如何在VBA填写Flash XMLVBA中解析XML我能到那里:

Dim fSuccess As Boolean
Dim oDoc As MSXML2.DOMDocument
Dim oRoot As MSXML2.IXMLDOMNode ' Level 0 egh_eval
Dim oChild As MSXML2.IXMLDOMNode ' Level 1 eval_set
Dim oChildren As MSXML2.IXMLDOMNode ' Level 2 eval_id, eval_d, eval_e, eval_cred


Dim domList As MSXML2.IXMLDOMNodeList

Set oDoc = New MSXML2.DOMDocument
oDoc.async = False
oDoc.validateOnParse = False

fSuccess = oDoc.Load(Application.CurrentProject.Path & "\file.xml")

Set oRoot = …
Run Code Online (Sandbox Code Playgroud)

ms-access vba msxml access-vba xml-parsing

3
推荐指数
1
解决办法
3万
查看次数

使用 VBA 从 XML 获取属性名称

我需要使用 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 中获取属性名称。 …

xml excel vba xmldom

2
推荐指数
1
解决办法
3036
查看次数

获取 XML 中的节点值

我在检索 1 个 XML 文件的节点值时遇到问题。对于除此之外的所有其他 XML 文件,它都可以使用。我已经检查过 XML 是否已加载并且确实加载了。我可以在 locals 窗口中找到这些值,因此它肯定会读取 XML 文件。检索此节点值的问题。

我用于其他文件的代码:

Set oXMLFile = CreateObject("Microsoft.XMLDOM")
XMLFileName = Dir(L_Folder & "\*" & Control & "*.xml")

oXMLFile.Load L_Folder & "\" & XMLFileName


Set NameNode = oXMLFile.SelectNodes("/DataSetCollection/DataSet/Data/Lot/LotRunGenKey")

MsgBox NameNode(i).NodeValue
Run Code Online (Sandbox Code Playgroud)

对于我/text()在最后添加的其他 XML 文件,因为每个节点值都有一个额外的文本行。

XML 文件示例 在此处输入图片说明

<?xml version="1.0"?>
<DataSetCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <DataSet Name="" Type="" Version="11.2.0" CreateTime="20200220190104">
    <Data IsVirtual="false">
      <Lot ID="" LotRunGenKey="4bccbfaf-0868-4240-a94f-724d9a79b102" ARPFlag="1" />
Run Code Online (Sandbox Code Playgroud)

xml excel vba

0
推荐指数
1
解决办法
61
查看次数

标签 统计

vba ×3

excel ×2

xml ×2

access-vba ×1

ms-access ×1

msxml ×1

xml-parsing ×1

xmldom ×1

xpath ×1

xslt ×1