0

各ノードの開始行番号を格納する Perl で LibXML を使用していますが、最後の行番号を取得するにはどうすればよいですか?

最後の行番号を取得しようとしました..

  • ..ノードのinnerhtmlで改行を数えますが、LibXMLは元とは異なるフォーマットでinnerhtmlを返すため、行番号が異なります。
  • ..node->getLastChild->line_number ですが、成功していません。

何か案が?

4

2 に答える 2

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();

しかし、非要素ノードについてはそれが返されますが、要素については (要素全体ではなく) 開始タグの最後の行番号が返されます。それはまったく役に立たない。

申し訳ありませんが、できません!

于 2013-01-19T22:47:43.080 に答える