2013-01-19 18 views
0

我在Perl中使用LibXML,它存儲了每個節點的起始行號,但是我怎樣才能得到最後一行?Perl LibXML獲取節點的最後一行數

我試着打通最後一個行號..

  • ..counting換行符節點的innerHTML,但libxml的不同格式返回的innerHTML比原來的,所以該行數量不同。
  • ..node-> getLastChild-> line_number,但也沒有成功。

任何想法?

+0

爲什麼你需要行號? – melpomene

+0

我做了一些計算,我需要一些節點的最後一個數字,它與html – user1021793

+3

中的行號完全匹配。您不能使用'LibXML'來完成這項工作。但是,無論如何,這是一個奇怪的要求,因爲XML數據應該通過諸如DOM之類的API來查詢和操縱,並且數據的佈局是不相關的。如果你解釋你正在試圖解決的問題,那麼我相信我們可以想出一個更好的方法。 – Borodin

回答

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

不過,雖然這就是它返回非元素節點,它返回的開始標記爲元素的最後一個行號(而不是元素作爲一個整體)。這完全沒用。

對不起,不行!