を働いていない発現は、私からの情報を取得していますいずれかと一致例のXMLドキュメントされています。ここではC#のXPathヘルプ - ここ
<?xml version="1.0" standalone="yes"?>
<Products xmlns="http://tempuri.org/Products.xsd">
<Movies>
<Title>Title1</Title>
<Language>English</Language>
</Movies>
<Movies>
<Title>Title2</Title>
<Language>English</Language>
</Movies>
<Movies>
<Title>Title3</Title>
<Language>French</Language>
</Movies>
<Books>
<Title>BTitle1</Title>
<Genre>Suspense</Genre>
</Books>
<Books>
<Title>BTitle2</Title>
<Genre>Suspense</Genre>
</Books>
<Books>
<Title>BTitle3</Title>
<Genre>SciFi</Genre>
</Books>
<Books>
<Title>BTitle4</Title>
<Genre>SciFi</Genre>
</Books>
</Products>
はサスペンスのジャンルにすべての書籍を取得するための私のコードです:
//Get state list using XPath
XPathDocument xDoc = new XPathDocument(xmlPath); //Path to my file
XPathNavigator xNav = xDoc.CreateNavigator();
string booksQuery = "Books[Genre = \"Suspense\"]";
XPathNodeIterator xIter = xNav.Select(booksQuery);
while (xIter.MoveNext())
{
//do stuff with xIter.Current
}
Products/Books[Genre = \"Suspense\"]
,Products/Books
,./Books
およびBooks
を含むいくつかのクエリを試しました。 My xIterには常に項目がありません。
私はXPathを初めて使いました。本当にシンプルなエラーだとは思いますが、そうではないかもしれません。 myDataSet.ReadXml(myXmlPathString);
を使用してこのXMLファイルの[Movies]と[Books]テーブルを持つDataSetを取得できるので、XMLファイルが破損していないことが分かります。それが何かを助けるなら。
だから、私の質問...私は間違っていますか?
一重引用符を試しましたか? Genre = \ 'Suspense \'? – funkymushroom
終了タグが変更されました – Rozuur
@Rozuur - 申し訳ありませんが、誤植。修正しました。 @funkymushroom - 私はしませんでした。私はそれを試みます。 –