各ノードの開始行番号を格納する Perl で LibXML を使用していますが、最後の行番号を取得するにはどうすればよいですか?
最後の行番号を取得しようとしました..
- ..ノードのinnerhtmlで改行を数えますが、LibXMLは元とは異なるフォーマットでinnerhtmlを返すため、行番号が異なります。
- ..node->getLastChild->line_number ですが、成功していません。
何か案が?
あなた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();
しかし、非要素ノードについてはそれが返されますが、要素については (要素全体ではなく) 開始タグの最後の行番号が返されます。それはまったく役に立たない。
申し訳ありませんが、できません!