gpt4 book ai didi

perl - XML removeChild,但输出有一个空行

转载 作者:行者123 更新时间:2023-12-01 05:53:22 24 4
gpt4 key购买 nike

简单的removeChild测试,虽然去掉了xml行,但是还是保留了一个空白行,怎么来的?顺便说一句 - 我的源 xml 文件确实有缩进,但是即使我删除它们,我也会得到相同的结果。那么,如果它仍然保留一个空格,那么能够删除子行有什么意义呢?

有没有办法在将生成的 xml 行输出到文件之前重新格式化生成的 xml 行?

foreach my $XYZ ($doc->findnodes("//EE1"))
{
my $library = $XYZ->parentNode;
$library->removeChild($XYZ);
}
print {$FH} $doc->toString(0);



RESULT IN OUTPUT FILE:
<?xml version="1.0"?>
<TopTag>
<AA1>ZNY</AA1>
<AA2>111</AA2>
<BB1>
<CC1>ZNY</CC1>
<CC2>
<DD1>
<-----blank line remains
<EE2>2000</EE2>
</DD1>
<DD1>
<-----blank line remains
<EE2>5000</EE2>
</DD1>
</CC2>
</BB1>
<AA1>ZNY2</AA1>
<AA2>2</AA2>
</TopTag>

最佳答案

空行来自包含空格的文本节点。考虑以下文档:

<doc>
<elem/>
</doc>

doc 元素包含以下节点:

  • 包含换行符和两个空格字符的文本节点。
  • 具有 elem 元素的元素节点。
  • 包含换行符的另一个文本节点。

如果删除了 elem 元素,则只有文本节点保留,导致空行。

重新缩进 XML::LibXML 文档的最简单方法是使用模块 XML::LibXML::PrettyPrint。也看看 this question .

关于perl - XML removeChild,但输出有一个空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19369511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com