Perl 的 HTML::Element - 仅将后代转储为 HTML



我在尝试输出我正在分析的匹配节点的内容时遇到问题:

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

我使用HTML::TreeBuilder::XPath来查找节点(这个类只有一个div):

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

它找到了节点(我相信是作为HTML::Element返回的),但$description->as_HTML也包括元素本身——我只希望元素中包含的所有内容都是HTML:

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

很明显,我可以用regex把它去掉,但这感觉很乱,我确信我只是在某个地方缺少了一个函数?

尝试这样做:

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

这是一个Xpath技巧。

使用./node()获取所有子节点,包括文本和元素。

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

相关内容

  • 没有找到相关文章

最新更新