Perl LibXML获取Node的最后一行号

时间:2013-01-19 13:11:26

标签: html xml perl libxml2

我在Perl中使用LibXML,它存储每个节点的起始行号,但我怎么能得到最后一个节点?

我尝试通过..获取最后一个行号。

  • ..计算节点的innerhtml中的换行符,但LibXML以不同于原始格式的格式返回innerhtml,因此行号不同。
  • .. node-> getLastChild-> line_number,但也没有成功。

任何想法?

2 个答案:

答案 0 :(得分:0)

如果line_number按照您的说法返回节点的第一行,那么您需要的只是

my $s_line_num = $node->line_number();
my $e_line_num = $node->nextSibling()->line_number();

但事实并非如此。 line_number返回的内容实际上更接近节点最后一行的数量。为此,我们可以简单地查看前一个兄弟的行号。

my $s_line_num = $node->previousSibling()->line_number();
my $e_line_num = $node->line_number();

但是,虽然这是非元素节点返回的内容,但它返回元素的开始标记的最后一个行号(而不是整个元素的行号)。那完全没用。

对不起,没有办法!

答案 1 :(得分:0)

如果line_number返回了您所说的节点的第一行,那么您所需要的就是

{{1}}

=> 1);