首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法让XmlTextWriter不写多余的名字空间?

有没有办法让XmlTextWriter不写多余的名字空间?
EN

Stack Overflow用户
提问于 2020-12-13 20:24:09
回答 1查看 29关注 0票数 0

我正在写出我所有的节点,我得到的XML如下:

代码语言:javascript
复制
<?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中被添加到了更高的位置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-15 14:47:14

您可以在XmlWriter与XmlWriterSettings一起使用NamespaceHandling省略重复项的情况:

代码语言:javascript
复制
 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标准相关的特性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65280278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档