2

別のタグにまだ含まれていない「裸の」テキスト ノードの XPath セレクターの作成に問題があります。これを変換したい:

some naked text <p>some wrapped text</p> more naked text

これに:

<p>some naked text</p> <p>some wrapped text</p> <p>more naked text</p>

使用してみましたが、トップレベルのものだけでなく、すべてのdoc.xpath("//child::text()").wrap('<p></p>')テキストノードを取得しているようです。

4

2 に答える 2

3
doc.xpath('/html/body/text()').wrap('<p/>')

使用するときは、軸、つまりドキュメント内の任意の場所を//選択しています。descendant-or-self代わりに/and (既定のchild軸) を使用して、特定の要素の直接の子であるテキスト ノードのみに一致させます。

これが<html>and<body>要素を含む HTML ドキュメントでない場合は、単純に次のようにします。

doc.xpath('/*/text()').wrap('<p/>')

ルート XML 要素の子であるすべてのテキスト要素を選択します (その名前が何であれ)。

于 2013-06-04T04:10:06.947 に答える
0

段落内のテキストを除くすべてのテキストを見つけることができます。

'//text()[not(ancestor::p)]'
于 2013-06-03T15:14:32.947 に答える