2011-01-13 7 views
1

以下はすべてJavaScriptで書かれています。XPathResultの要素から属性値とテキスト値にアクセスするには?

私は、次のXML

<Hotels> 
    <Hotel category='standard'>Hotel 1</Hotel> 
    <Hotel category='superior'>Hotel 2</Hotel> 
</Hotels> 

私のxpath(「//ホテル」)からの私の「結果」を持っているが、私が取得する次の2

何をしますかの長さの配列を返します。カテゴリの値とテキストに表示されます。 2.

私は何をしますかの長さの配列を返す 私のxpath( "//ホテル")から

results[0].???? //will give me the text

+0

"Hotel 1 Hotel 2"はXMLのようには見えません。また、どの言語を使用していますか? –

+0

結果はノード・セットです。各ノードについて@categoryはカテゴリーを与え、text()はテキストを与えます – time4tea

+0

それらはただのホテルの名前です – nexar

答えて

0

results[0].???? //will give me category valueすなわち私の '結果'次に カテゴリの値とテキストを取得します。

あなたはcategory属性と単一のXPath式を使用して、テキスト子の両方を選択することができます。

/*/Hotel/@category | /*/Hotel/text() 

利用のXPathエンジンに依存してもよい結果のため、通常の文書であります-注文。提供されるXML文書とそう

<Hotels> 
    <Hotel category='standard'>Hotel 1</Hotel> 
    <Hotel category='superior'>Hotel 2</Hotel> 
</Hotels> 

上記のXPath式は、4つのノードを選択します。第一Hotel要素のcategory属性、第一Hotel要素のテキスト・ノードの子、category 2番目のHotel要素のテキストノードと2番目のテキストノードの子要素要素

+0

ありがとうDimitreしかし、どのようにそれらのノードから値を取得するのですか? – nexar

+0

@nexar:これは、使用している特定のXPathエンジンによって異なります。通常、XPath式は 'SelectNodes()'メソッドを呼び出すことによって評価され、 'XmlNodeList'と呼ばれる型の結果を返します。その結果を繰り返して、個々の' XmlNode'オブジェクトに到達する必要があります。 XPath/DOMのドキュメントを読む必要があります。 –

+0

また、私が持っているもう1つの質問は、どのように4つのノードが「カテゴリ」に関連して返されたのか、text()に関連しているのか、特定のXPathエンジンに依存するものなのかを知ることです。 – nexar

関連する問題