0

itemNodesは、タイトルの数と同じ数のエントリを含むDOMノードリストであることがわかります。タイトルノード内の情報にアクセスしたい。itemNodes.childNodes[0].nodeValueを使用してみました

エラーが発生します

エラーが発生しました:TypeError:itemNodes.childNodesにプロパティがありません

itemNodes.item(i)をループ内に配置すると

タイトル1:[オブジェクトDOMElement]タイトル2:[オブジェクトDOMElement]タイトル3:[オブジェクトDOMElement]タイトル4:[オブジェクトDOMElement]

DOMノードを期待していました。私は何を間違えましたか?ビスタマシンでYahooウィジェット4.5を使用していますか?.KONファイルには次のものがあります。

x = filesystem.readFile('sample.xml');
doc = XMLDOM.parse(x);



if(doc != null)
{   

   //print( doc.toXML() );

   var itemNodes = doc.getElementsByTagName('title');

   var firstItem = itemNodes.item(0);
 print(itemNodes);
 numberOfItems = itemNodes.length;
 items=null;
 items = new Array(numberOfItems);

 for(var i = 0; i < numberOfItems; i++)
 {
    print("Title " + (i+1) + ": " + itemNodes );
 }
}

else
{
   print("An error occurred. Response status: (" + request.status + ") " + request.statusText);
}

}

catch(e)
{
  print("An error occurred: " + e);
}

sample.xmlは次のとおりです

<!-- Edited by XMLSpy® --> 
<bookstore> 
<book category="cooking"> 
<title lang="en">Everyday Italian</title> 
<author>Giada De Laurentiis</author> 
<year>2005</year> 
<price>30.00</price> 
</book> 
<book category="children"> 
<title lang="en">Harry Potter</title> 
<author>J K. Rowling</author> 
<year>2005</year> 
<price>29.99</price> 
</book> 
<book category="web"> 
<title lang="en">XQuery Kick Start</title> 
<author>James McGovern</author> 
<author>Per Bothner</author> 
<author>Kurt Cagle</author> 
<author>James Linn</author> 
<author>Vaidyanathan Nagarajan</author> 
<year>2003</year> 
<price>49.99</price> 
</book> 
<book category="web" cover="paperback"> 
<title lang="en">Learning XML</title> 
<author>Erik T. Ray</author> 
<year>2003</year> 
<price>39.95</price> 
</book> 
</bookstore>
4

2 に答える 2

0

XML解析に関しては、YahooWidgetエンジンの動作が異なります。使用している場合

itemNodes.childNodes[0].nodeValue

最初の子ノードの値にアクセスし、式を次のように変更します。

itemNodes.childNodes.item(0).nodeValue

一般に、以下の式を使用してi番目の子の値にアクセスできます。

itemNodes.childNodes.item(i).nodeValue
于 2010-09-02T15:33:04.077 に答える
0

以下を使用して XML のコンテンツにアクセスしました。trimString はカスタム関数です。ウィジェットデバッガーは DomNodes を DomElements として表示したと思います

for(var i = 0; i < numberOfItems; i++)
    {

            //get each item node
            var node = itemNodes.item(i);
            var titleList = node.evaluate( "title/text()" );
            var titleString =  trimString(String(titleList.item(0).nodeValue));
            print("TitleX: " + titleString);
    }
于 2009-11-10T21:27:23.447 に答える