3

解析している一致したノードの内容を出力しようとして問題が発生しました。

<div class="description">some text <br/>more text<br/></div>

私はHTML::TreeBuilder::XPathノードを見つけるために使用しています(このクラスにはdivが1つだけあります):

my $description = $tree->findnodes('//div[@class="description"]')->[0];

HTML::Elementノード(私が信じているように返されます)を見つけます$description->as_HTMLが、要素自体も含みます-要素内にすべてをHTMLとして含める必要があります:

some text <br/>more text<br/>

私は明らかにそれを正規表現で取り除くことができますが、それは厄介な感じで、それを行うための機能がどこかに欠けていると確信していますか?

4

2 に答える 2

0

これを試してみてください:

my $description = $tree->findnodes('//div[@class="description"]/text()')->[0];

これはXpathのトリックです。

于 2013-02-06T13:22:31.107 に答える
0

./node()テキストと要素を含むすべてのサブノードを取得するために使用します。

my $description = $tree->findnodes('//div[@class="description"]/node()');
于 2013-02-06T13:52:44.227 に答える