我在尝试输出我正在解析的匹配节点的内容时遇到问题:
<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/>
我显然可以用正则表达式去掉它,但感觉很乱,我确定我只是在某处缺少一个函数来做这件事?
最佳答案
尝试这样做:
my $description = $tree->findnodes('//div[@class="description"]/text()')->[0];
这是一个 Xpath 技巧。
关于Perl 的 HTML::Element - 仅将后代转储为 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14730122/