我正在写出我所有的节点,我得到的XML如下:
<?xml version="1.0" encoding="utf-8"?>
<root attribute="xyz">
<h:table xmlns:h="http://www.windward.net" attribute="xyz">
<h:tr xmlns:h="http://www.windward.net">
<h:name xmlns:h="http://www.windward.net">windward</h:name>
<h:width xmlns:h="http://www.windward.net">42</h:width>
</h:tr>
</h:table>
<f:table xmlns:f="http://www.windward2.net" attribute="xyz">
<f:name xmlns:f="http://www.windward2.net">windward2</f:name>
<f:width xmlns:f="http://www.windward2.net">42</f:width>
<f:length xmlns:f="http://www.windward2.net">120</f:length>
</f:table>
<test>42</test>
</root>是否有一种方法可以让XmlTextWriter在内部节点中不重复xmlns:h & xmlns:f?
这适用于一些代码,其中添加了节点(上面是一个简单的例子),我不确定哪些名称空间在DOM中被添加到了更高的位置。
发布于 2020-12-15 14:47:14
您可以在XmlWriter与XmlWriterSettings一起使用NamespaceHandling省略重复项的情况:
using (XmlWriter xw = XmlWriter.Create(Console.Out, new XmlWriterSettings() { Indent = true, NamespaceHandling = NamespaceHandling.OmitDuplicates }))
{
doc.Save(xw);
}XmlTextWriter只是XmlWriter的遗留实现(.NET 1.0),在标准遵从性方面,XmlWriter.Create不应该给您带来任何缺点,除非您使用了一些更特定于微软的XmlTextWriter特性,而不是与XML标准相关的特性。
https://stackoverflow.com/questions/65280278
复制相似问题