LoadXml添加了额外的空白
本文关键字:空白 添加 LoadXml | 更新日期: 2023-09-27 18:14:51
这就是我的字符串的样子
<?xml version="1.0" encoding="UTF-8"?>
<payment id="123456" date="2013-05-16 11:24:59.0">
<refund id="1" amount="10000.0" reason="refund 1"/>
<refund id="2" amount="1200.0" reason="refund 2"/>
<refund id="3" amount="2252.0" reason="refund 3"/>
</payment>
在我使用以下代码将其转换为xml之后:
XmlDocument xml = new XmlDocument();
xml.LoadXml(myString);
我的xml文档如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<payment id="123456" date="2013-05-16 11:24:59.0">
<refund id="1" amount="10000.0" reason="refund 1" />
<refund id="2" amount="1200.0" reason="refund 2" />
<refund id="3" amount="2252.0" reason="refund 3" />
</payment>
注意到区别了吗?出于某种原因,所有"退款"元素在结束标记之前都有一个额外的空白。有人知道为什么会这样吗?我试图将PreserveWhitespace设置为false,但无济于事。
This is because of the inline closing of the XML tag.
<?xml version="1.0" encoding="UTF-8"?>
<payment id="123456" date="2013-05-16 11:24:59.0"**>**
<refund id="1" amount="10000.0" reason="refund 1"**/>**
<refund id="2" amount="1200.0" reason="refund 2"/>
<refund id="3" amount="2252.0" reason="refund 3"/>
</payment>
付款的末尾有一个单独的结束标签,但退款是一个自行结束的元素。默认情况下,将在结束标记之前添加一个空格。如果你不想要间距,那么你必须像那样做
<?xml version="1.0" encoding="UTF-8"?>
<payment id="123456" date="2013-05-16 11:24:59.0">
<refund id="1" amount="10000.0" reason="refund 1">**</refund>**
<refund id="2" amount="1200.0" reason="refund 2"></refund>
<refund id="3" amount="2252.0" reason="refund 3"></refund>
</payment>
XmlDoument
将XML内容转换为有效标记。也就是说,应该有一个空格(这不是必须的,但它是标准的(。
你可以试着把整个XML放在一行中,我星期五的结果会和这里一样。。