作爲一個例子,我有一個Perl XML ::嫩枝對象$xmlDef
,其包含以下內容:XML輸出::嫩枝對象內容
<ROOT>
<CHILD>
</CHILD>
</ROOT>
它用下面的代碼生成:
my $parser = XML::Twig->new(
twig_handlers => {
ROOT => sub { $xmlDef = $_ }
},
pretty_print => 'indented'
);
$parser->parse($xmlStr);
當我使用$xmlDef->print
查看$xmlDef
時,其內容會正確輸出到控制檯。當我做print $xmlDef->text
時,沒有東西會得到輸出。我在做什麼錯誤使用->text
?
嘗試'$打印xmlDef-> sprint' – mirod
@mirod,似乎工作!如果我使用該方法將'$ xmlDef'添加到另一個XML對象:'$ diffXml-> insert_new_elt('last_child',$ xmlDef-> sprint)',我會得到如下輸出結果:' ** <** **/> ** '。我如何得到它,因此它不會將額外的** < /> **放在'$ xmlDef'內容附近? –
你想做什麼?如果你試圖插入根作爲一個元素,那麼你不應該在之前(通過'sprint')序列化它。執行'$ xmlDef-> move(last_child => $ diffXml)'或'$ xmlDef-> clone-> paste(last_child => $ diffXml)'第二個選項可能更安全一些,樹在舊版本的XML :: Twig中。 – mirod