GetElementsByTagName возвращает пустой список - PullRequest
1 голос
/ 08 февраля 2011

GetElementsByTagName ("дорожка") не возвращает элементов при наличии одного элемента "дорожка"

test.vbs

Dim oXML
Set oXML = CreateObject("Msxml2.DOMDocument.6.0")
oXML.async = True
oXML.onreadystatechange = getRef("ParseXML")

oXML.Load("http://musicbrainz.org/ws/1/track/?type=xml&limit=1&artist=the%20archies&title=sugar%20sugar")

Sub ParseXML()
    If oXML.readyState <> 4 Then Exit Sub
    If oXML.parseError.errorCode <> 0 Then Exit Sub
    MsgBox(oXML.documentElement.GetElementsByTagName("track").length)
    MsgBox(oXML.documentElement.GetElementsByTagName("*").length)
    MsgBox(oXML.xml)
End Sub

MsgBox("Wait...") ' Keeps oXML in memory

GetElementsByTagName ("дорожка ") выходы 0

GetElementsByTagName (" * ") выходы 10

oXML.xml выводит исходный XML

  <?xml version="1.0" encoding="UTF-8" ?> 
  <metadata xmlns="http://musicbrainz.org/ns/mmd-1.0#" xmlns:ext="http://musicbrainz.org/ns/ext-1.0#">
      <track-list offset="0" count="180">
          <track id="5153eb2d-c37e-43eb-8340-6dcafaf3ebc9" ext:score="100">
              <title>Sugar, Sugar</title> 
              <duration>168186</duration> 
              <artist id="623d5f3f-3093-4711-881f-ed33eda10882">
                  <name>The Archies</name> 
              </artist>
              <release-list>
                  <release type="Compilation" id="4930d2a7-3b60-41b2-8511-a678bce1d9fb">
                      <title>Fetenhits: Oldies (disc 1)</title> 
                      <track-list offset="16" count="20" /> 
                  </release>
             </release-list>
         </track>
      </track-list>
  </metadata>

Как получить список элементов "track"?

1 Ответ

2 голосов
/ 08 февраля 2011

Ваш XML-документ использует пространство имен по умолчанию.Возможно, вам следует использовать вместо него getElementsByTagNameNS.

...