0

我有点新手(在这个网站上和一般的编码)所以请多多包涵。我有一个如下所示的 XML 文档:

<?xml version="1.0" encoding="UTF-8"?>
  -<LearnerFirstTimeRegistration xmlns="urn:learnerregfeedback-schema"> 
     -<Header> 
       -<Record type="1">
         <Filename>blahblahblah.xml</Filename> 
         <ProvinceID>5</ProvinceID> 
         <EmisNumber>5xxxxxxx8</EmisNumber> 
         <StatusID>2</StatusID> 
         <TransactionCategoryID>4</TransactionCategoryID> 
         <SequenceNumber>1</SequenceNumber> 
         <DateCreated>2014-02-26</DateCreated> 
         <CreatedBy>blahblahblah</CreatedBy> 
        </Record> 
      </Header> 
    -<LearnerInformation> ....  etc etc

使用 VBA 我只是想在 msgbox 中显示 SequenceNumber 节点中的值(在本例中 =1)

我在用着:

Private Sub Command317_Click()

 Dim objNodeList As IXMLDOMNodeList
 Dim objNode As IXMLDOMNode
 Dim xDoc As MSXML2.DOMDocument30

 Set xDoc = New MSXML2.DOMDocument30

 xDoc.LoadXML ("\\location\blahblahblah.xml")

 MsgBox xDoc.selectSingleNode("SequenceNumber").nodeName

End Sub

它给了我一个运行时错误:未设置对象变量或块变量从我在网上阅读的内容看来,这似乎表明它是因为它试图返回一个空值。但如您所见,SequenceNumber 不为空,它为 1。

任何帮助将非常感激

4

1 回答 1

0
MsgBox xDoc.selectSingleNode("//SequenceNumber").nodeName

或者

MsgBox xDoc.selectSingleNode("//SequenceNumber").Text

如果你想要元素内容。

编辑:

这是对我有用的代码:

Sub Test()

    Dim oDoc As New MSXML2.DOMDocument30
    Dim XML As String

    XML = ActiveSheet.Range("A1").Value

    oDoc.validateOnParse = True
    oDoc.LoadXML XML

    Debug.Print oDoc.SelectSingleNode("//SequenceNumber").Text '>> 1

End Sub

我正在从工作表单元格加载此 XML:

 <?xml version="1.0" encoding="UTF-8"?>
  <LearnerFirstTimeRegistration  xmlns="urn:learnerregfeedback-schema"> 
     <Header> 
       <Record type=""1"">
         <Filename>blahblahblah.xml</Filename> 
         <ProvinceID>5</ProvinceID> 
         <EmisNumber>5xxxxxxx8</EmisNumber> 
         <StatusID>2</StatusID> 
         <TransactionCategoryID>4</TransactionCategoryID> 
         <SequenceNumber>1</SequenceNumber> 
         <DateCreated>2014-02-26</DateCreated> 
         <CreatedBy>blahblahblah</CreatedBy> 
        </Record> 
      </Header> 
    </LearnerFirstTimeRegistration>
于 2014-02-26T21:25:14.497 回答