XPathでテキストを含むすべてのノードを選択する

c# html-agility-pack xpath

質問

私はこの問題を解決するために苦労してきました。さて、HTML文書からすべてのtext()を取得したいのですが、テキストデータを含むノードのXPathを知りたいだけです。例:

 foreach (var textNode in node.SelectNodes(".//text()")) 
 //do stuff here 

しかし、textNode.XPathを使用してtextNode.XPath XPathを取得する場合は、# #textノードを含む完全なXPathを#textます。

/html[1]/body[1]/div[1]/a[1]/#text

しかし、私はテキストの包含ノードだけを望んでいます。例えば:

/html[1]/body[1]/div[1]/a[1]

誰かが、テキストを含むすべてのノードを取得するのにXPathを含むノードまで検索するより優れたXPathソリューションを私に教えてもらえますか?

受け入れられた回答

あなたはどう?

string[] elements = getXPath(textNode).Split(new char[1] { '/' });
return String.Join("/", elements, 0, elements.Length-2);

人気のある回答

代わりに

.//text() 

使用

.//text() 

これにより、少なくとも1つの非空白のみのテキストノードの子を持つ、コンテキスト(現在)ノードのすべての「葉要素」の祖先が選択されます。




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ