0

2000 年以前に出版されたすべての本のタイトルを取得したい

XML

<bookstore xmlns:old="http://www.w3.org/TR/html4/" xmlns:new="http://www.w3.org/1999/XSL/Transform">
<old:book>
    <old:title lang="en">Harry Potter I</old:title>
    <old:author>J K. Rowling</old:author>
    <old:year>1997</old:year>
    <old:price>450</old:price>
</old:book>
<old:book>
    <old:title lang="hn">Malgudi Days </old:title>
    <old:author>R.K. Narayan </old:author>
    <old:year>2006</old:year>
    <old:price>160</old:price>
</old:book>

<new:book>
    <new:title lang="en">Can Love Happen Twice?</new:title>
    <new:author>Ravinder Singh</new:author>
    <new:year>2011</new:year>
    <new:price>150</new:price>
</new:book>
<new:book>
    <new:title lang="en">The Lowland</new:title>
    <new:author>Jhumpa Lahiri</new:author>
    <new:year>2013</new:year>
    <new:price>240</new:price>
</new:book>

式を使用してすべてのタイトルを取得しています

pathExpr = "/bookstore/*[local-name() = 'book']/*[local-name() = 'title']";

今、条件を追加したい(年> 2000)。で試しました

pathExpr = "/bookstore/*[local-name() = 'book'][local-name() = 'year' < 2000]/*[local-name() = 'title']";

この

pathExpr = "/bookstore/*[local-name() = 'book']||[local-name() = 'year' < 2000]/*[local-name() = 'title']";    

しかし、それは機能していません。名前空間の扱い方がわからない。前もって感謝します。

4

1 に答える 1

2

これはうまくいくはずです:

/bookstore/*[local-name() = 'book']
            [./*[local-name() = 'year'] < 2000]/*[local-name() = 'title']

の子の./*[...]テストに追加しましたyearbook

  • ./*[local-name() = 'year']子ノードを選択します
  • [./*[local-name() = 'year'] < 2000]コンテンツの値をテストします
于 2013-09-13T10:18:52.930 に答える