2017-12-22 26 views
1

私は"adc"として出力を与えるのlinuxxmlstarletは、子文字列の値に基づいて、単純な選択のために働いていない

xmlstarlet sel -t -m 'bookstore/author [1]' -n books.xml 

にxmlstarlet使用

<bookstore> 
    <book category="cooking"> 
     <title lang="en">Everyday Italian</title> 
     <author>adc</author> 
     <year>2005</year> 
     <price>30.00</price> </book> 
    <book category="children"> 
     <title lang="en">Harry Potter</title> 
     <author>xyz</author> 
     <year>2005</year> 
     <price>29.99</price> </book> 
</bookstore> 

のようなXMLファイルに取り組んでいますが、私はどのように見つけることができますフィールドは私がすでに値を知っている?

私は知っている著者タグは値"adc"があります。 xの検索方法は?

答えて

0

私は答えを見つけて検索してxmlstarlet使用

ここ
xmlstarlet -t -c 'bookstore/book[author="adc"]' -n books.xml 

書店/ブック内のフィールドで値を選択するには、同じ

渡って他の誰かつまずきにそれを残してのビットは、ノードの完全なパスをしたら著者: [author = value]は、作成者が特定の値を持つノードのみを選択するために使用されます。books.xmlはあなたのXMLファイルです。

他の人が説明することはできますが、これはいくつかの助けの

+0

あなたのXPathは子の​​ 'author'要素が子の' adc'要素と等しいすべての 'bookstore/book'要素を選択するように言います。 'adc'の周りに引用符がありません。さらに、XMLStarletでXPathを使用する方法に関する多くのQ/Aがあります。 1つの例については、重複リンクを参照してください。 – kjhughes

+0

@kjhughes Thnxの助けを借りて、私は答えを訂正しました。私は重複を利用できないので追加しました – Solaris

関連する問題