2013-07-08 100 views
-1

嘗試在雪豹上運行我的xml解析過程。該進程讀入一個xml文件,解析,提取數據塊並寫入輸出文件。 過程像Windows機器上的魅力一樣(感謝所有人在stackoverflow)但是當試圖在我的mac上運行時,輸出文件中的文本數據塊被寫爲:在MAC上運行時出現XML錯誤Snow Leopard

XML :: LibXML: :元素= SCALAR(0x1008c61d0)|

谷歌搜索,但沒有發現任何相關的。希望這裏有人能指出這個問題是什麼?這可能是安裝相關或與過程有關嗎?

任何幫助將不勝感激。

感謝, 西馬克

+0

我的魔晶球說你可能在你的代碼中有一個bug。 – innaM

+0

代碼如何? – trojanfoe

+0

該代碼在mac上運行。只有少數屬性正在使用該符號進行編寫。這是什麼意思?如果我知道它的含義,將有助於調試代碼。謝謝閱讀。 – BRZ

回答

1

最新的XML版本::的libxml有串超載的XML ::的libxml :: Element對象。所以下面的腳本會顯示不同的XML ::的libxml版本不同的輸出:

use strict; 
use warnings; 
use XML::LibXML; 

my $doc = XML::LibXML->new->parse_string(<<EOF); 
<test> 
    <foo>hello</foo> 
</test> 
EOF 
my($node) = $doc->findnodes('/test/foo'); 
print $node, "\n"; 

在舊系統與XML ::的libxml 1.69安裝輸出爲:

XML::LibXML::Element=SCALAR(0x8259700) 

在用新系統2.0014安裝的輸出是:

<foo>hello</foo> 
+0

太棒了!非常感謝,斯拉文。我直接在Mac上從CPan安裝XML :: LibXML。猜猜它拉了舊版本。任何想法如何在安裝時指定版本? – BRZ

+0

對不起,我不能幫助解決Mac/Perl問題。與舊的XML :: LibXML版本保持兼容可能會更好,而不依賴於嚴格的過載。因此,如果您希望文本內容位於元素內部,只需使用$ xml_element-> serialize 即可獲取XML片段或$ xml_element-> textContent。 –

相關問題