0

C# で xpath を使用して xml ファイルをクエリしています。

ここに私のxmlファイルがあります

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

そして私のC#コードは

XPathNavigator nav;
XPathDocument docNav;
XPathNodeIterator NodeIter;
String strExpression;

docNav = new XPathDocument(@"C:\\DCU\\XQUE.xml");

nav = docNav.CreateNavigator();
// This expression uses standard XPath syntax.

strExpression = "/bookstore[./book/price>35.00]";

NodeIter = nav.Select(strExpression);

while (NodeIter.MoveNext())
{
    Console.WriteLine("{0}", NodeIter.Current.OuterXml);
}

しかし、私はこのような出力を得たい、

<bookstore>
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

私の xpath クエリ行に欠けているものがあると思います。抜け道を教えてください..

4

2 に答える 2

1

その式<bookstore>は要素を選択するため、出力は全体<bookstore>(すべての子book要素を含む) になります。特定の書籍が必要な場合は、別の XPath を使用する必要があります

strExpression = "/bookstore/book[price>35.00]";

<book>一致する要素だけを出力しますが、周囲の<bookstore>タグは表示しません。

于 2013-03-08T13:32:32.430 に答える