gpt4 book ai didi

html - 输出InnerHTML Perl LibXML

转载 作者:行者123 更新时间:2023-12-03 16:04:46 26 4
gpt4 key购买 nike

请在下面查看MWE

use XML::LibXML;
my $content = "<tr>
<td class='title'>Synonym(s)</td>
<td>Automobile<br/>Car<br/></td>
</tr>";

my $parser = XML::LibXML->new({suppress_errors=>1, suppress_warnings=>1, recover=>2});
my $document = $parser->parse_html_string($content);
my @node = $document->findnodes('//td[@class="title" and text()="Synonym(s)"]/following-sibling::td');
print $node[0]->toString();


输出为:
<td>Automobile<br/>Car<br/></td>

但是我只需要“内部”内容:
Automobile<br/>Car<br/>

我如何更改xPath,或者我需要其他LibXML方法。

谢谢,
托比亚斯

最佳答案

在XML :: LibXML中没有内置的方法可以做到这一点。更改xpath将无济于事。该xpath为您提供了td元素列表。如果在所有适合当前xpath的td元素中获取内容,您将得到一长串的东西,而无法辨别第一个td的内容和第二个< cc>开始。

相反,您需要通过将td元素的all children转换为字符串来构造它。

print join '', map { $_->toString } $node[0]->childNodes;


输出:

Automobile<br/>Car<br/>

关于html - 输出InnerHTML Perl LibXML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40134790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com