2012-02-15 22 views
2

を読むためにXPathを使用:私はこのXMLを持つXML

<?xml version="1.0" encoding="utf-8" ?> 
<bookstore> 
    <book id="ISBN-NUMBER"> 
    <title> 
     The Autobiography of Benjamin Franklin 
    </title> 
    <author type="major"> 
     <first-name> 
     Benjamin 
     </first-name> 
     <last-name> 
     Franklin 
     </last-name> 
    </author> 
    <price> 
     8.99 
    </price> 
    </book> 
    <book id="ISBN-NUMBER"> 
    <title> 
     The Confidence Man 
    </title> 
    <author type="major"> 
     <first-name> 
     Herman 
     </first-name> 
     <last-name> 
     Melville 
     </last-name> 
    </author> 
    <price> 
     11.99 
    </price> 
    </book> 
    <book id="ISBN-NUMBER"> 
    <title> 
     The Gorgias 
    </title> 
    <author type="major"> 
     <name> 
     Plato 
     </name> 
    </author> 
    <price> 
     9.99 
    </price> 
    </book> 
</bookstore> 

私は、XPathでそれを読むにはどうすればよいですか?私は使用しました:

XPathDocument doc = new XPathDocument(stream); 
XPathNavigator nav = doc.CreateNavigator(); 
XPathNodeIterator node = nav.Select("bookstore/book"); 

while (node.MoveNext()) 

私はここからどのように移行しますか?私はノードがタイトル、著者、および価格であればswtichステートメントが必要だと思います。もし本なら私は本のIDを読む必要があり、著者とタイプも同じです。

+4

答えを待っている間に、以前の質問に関する回答を受け入れる – rene

+0

この例を読んでいるようです - http://support.microsoft.com/kb/308333;ブックノードを取得する方法は説明していますが、子属性を選択する方法は説明していません - 例http://msdn.microsoft.com/en-us/library/system.xml.xpath.xpathnavigator.select(v= vs.71).aspxにはこの情報が含まれています。 – dash

+0

あなたは私たちに最も重要なことを忘れてしまった:あなたの仕事は何ですか?どのXML文書のノードを選択しますか?質問を編集し、この重要でない情報を追加してください。 –

答えて

2

node.Select('//title')を使用してタイトルを取得できます。私はC#でどのように動作するのか分かりませんが、一般的なxpathは次のようになります。

  • //bokstore/bookブックノードを選択します。
  • は、タイトルノードを選択します。
  • //bookstore/book[n]/*は、n番目のノードのすべての子ノードをすべて選択します。
関連する問題