0

特定の形式の XML ノードを読み取るのに問題があり、私と私のパートナーは頭がおかしくなりました...

これを試してみました..しかし、「空白」のメッセージボックスが表示され続けます..どんな助けでも大歓迎です

Set xmlObject = CreateObject("Msxml2.DOMDocument.6.0")
urlPath = "C:\Users\...\Desktop\LolChampsSelect.xml"

xmlObject.async = False
xmlObject.load urlPath

'set ban = xmlObject.selectNodes("//*")
set ban = xmlObject.selectNodes("//*")
set ban = xmlObject.selectNodes("//red/ban[@order]
msgbox ban(0).text

XML ファイル

 <championSelect>
       <blue>
         <ban order="1" name="Darius"/>
         <ban order="3" name="Elise" />
         <ban order="5" name="Twisted Fate" />
         <pick order="1" name="Gragas" />
         <pick order="4" name="Shen" />
         <pick order="5" name="Shyvanna" />
4

1 に答える 1

2

属性を扱うための最小限のデモ コード:

  Dim sXml : sXml = Join(Array(_
        "<championSelect>" _
      , " <blue>" _
      , "  <ban order=""1"" name=""Darius""/>" _
      , "  <ban order=""3"" name=""Elise"" />" _
      , " </blue>" _
      , "</championSelect>" _
  ), vbCrLf)
  Dim objMSXML : Set objMSXML = CreateObject("Msxml2.DOMDocument")
  objMSXML.setProperty "SelectionLanguage", "XPath"
  objMSXML.async = False
  objMSXML.loadXml sXml

  If 0 = objMSXML.parseError Then
     Dim ndFound : Set ndFound = objMSXML.SelectSingleNode("/championSelect/blue/ban[@order=""3""]")
     WScript.Echo ndFound.tagName, "found"
     WScript.Echo "name:", ndFound.getAttribute("name")
  Else
     WScript.Echo objMSXML.parseError.reason
  End If

出力:

==============
ban found
name: Elise
==============

これを使用して、ドキュメント内のオブジェクト/関数/プロパティを検索します。

于 2013-07-29T20:00:10.790 に答える