2011-07-29 12 views
5

Dışarıdan etiket çıkarmak istiyorum. Örneğin,dışa aktarma metin etiketleri dışında xml

ben metni almak istiyorum
<body> 
    This is an exmaple 
    <p> 
     blablabla 
    </p> 
    <references> 
     refer 1 
     refer 2 
    </references> 
</body> 

sadece diğer etiketler (p veya referans) metin olmadan "Bu bir örnektir". Birkaç yöntem denedim ama işe yaramıyor. Any1 yardımcı olabilir? Çok teşekkürler.

cevap

8

Etiket içindeki bir metni düğüm gibi düşünmelisiniz. Bir test düğümü text() kullanılarak bir metin düğümü alınır. Örnek. Verilen:

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

XPath:

"/body/text()" 

ve "başka bir örnek" "Bu xmaple olan" gibi body tüm çocuklar metin düğümlerini almak Will ise:

"/body/text()[1]" 

olacak sadece ilk olanı al, "Bu bir exmaple". Bu C# XmlDocument veya XmlReader tarafından

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

yapılabilir: İlk p içindeki tüm metin düğümleri istiyorum

"/body//text()" 

ya: Tüm soyundan metin düğümlerini istiyorsanız kullanabilirim? Metni okumaya ve indeksleme için metni başka bir xml'ye yazmaya çalışıyorum. –

+0

Önce XPath'i xmldocument üzerinde SelectNodes veya SelectSingleNode gibi bir yöntemle kullanmanız için emin olabilirsiniz (bunu bir yıldan beri kullanmayın). –

2

Bu XPath'i kullanın: /body/text(). This is an exmaple seçecektir.

İlgili konular