2011-07-25 14 views
2

は私のxmlドキュメントです。今すぐクエリは/description/*/text()です。<strong> lunch </strong>の中にあるテキストを表示する以外は、すべてのテキストを取得できます。xpathクエリの質問

これはおそらく単純な修正ですが、正しくはできませんでした。

<description> 
<![CDATA[ 
<p> 
    Envie is a brand new Bar Lounge that offers a modern-design space opening onto Wyndham Street, where on busy nights the crowd spills out onto the street... 
</p> 
<p> 
    If you are in for a <strong>lunch</strong>, the Twangoo voucher will offer you two delicious Lunches &ndash; perfect for that lunch meeting, a casual date or just a get together with friends in a relaxed and modern atmosphere. 
</p> ]]> 
</description> 
+0

あなたはXMLに 'CDATA'を含んでいますか? 'CDATA'の中でXMLを解析する必要がありますか? –

答えて

3

今、あなただけの記述のすべての子ノードごとにテキストを選択している

/description//text() 

を試してみてください。

//text()を代わりに使用する場合は、現在のノード(記述)の子孫であるすべてのノードのすべてのテキストを選択しています。

+0

ありがとうございました。 – kevin

+0

それは喜びでした。答えがあなたの問題を解決した場合は、それをSolvedとマークしてください。多くの人に時間を節約します。 – CaBieberach

0

あなたのクエリ/記述/ */text()は、description要素の要素childrenのテキストノードの子を選択します。しかし、description要素には子要素がありません。これは、CDATAがパーサーにマークアップとしてのコンテンツを平文として扱わないように指示していることを除いては同じです。私はなぜXMLがこのようなものをCDATAにラッピングしているのかわかりませんが、それを処理したりクエリしたりするのがずっと難しくなります。