2011-07-29 9 views
5

タグの外にテキストを抽出したいと思います。たとえば、タグの外にテキストを抽出する方法xml

「これは例です」というテキストを他のタグ(pまたは参照)のテキストなしで取得したいと考えています。私はいくつかの方法を試みましたが、うまくいきません。 Any1は助けることができますか?本当にありがとう。

答えて

8

タグ内のテキストをノードのように考える必要があります。テキストノードは、テストノードtext()を使用して取得されます。例。与えられた:

"/body/text()[1]" 

は以下となります。

<body> 
    This is an exmaple 
    <p> 
    blablabla 
    <\p> 
    <references> 
     refer 1 
     refer 2 
    <\references> 
    another example 
<\body> 

のXPath:ながら、そして "他の例" "これはexmapleである" のような

"/body/text()" 

は、bodyのすべての子テキストノードを取得します最初のものだけを取得します。 "This is an exmaple"です。

"/body//text()" 

か、あなたが最初のp内のすべてのテキストノードをしたい:あなたはあなたが使用できるすべての子孫テキスト・ノードをしたい場合は

"/body/p[1]//text()" 
+0

これは、C#のXmlDocumentオブジェクトまたはXMLReaderをすることによって行うことができますか?私は、テキストを読んで、索引付けのために別のXMLにテキストを書き込もうとしています。 –

+0

確かに、SelectNodesやSelectSingleNodeのようなメソッドでxmldocumentのXPathを使用する必要があります(少なくとも1年以上使用しないでください)。 –

2

このXPathを使用してください:/body/text()。それはThis is an exmapleを選択します。