XmlDocument 从根元素中删除 XMLNS
新来的,希望获得有关我的 XmlDocument 的一些帮助。是否可以在我的根元素中包含字符串数据并删除显示的 xmlns= 属性?我正在寻找这样的东西:
<Rulebase author=yadda datetime=bingbang version=1.x </Rulebase>
当我尝试通过执行以下操作来使用我的字符串数据时:
xmlDom.AppendChild(xmlDom.CreateElement("", "Rulebase", data));
XmlElement xmlRoot = xmlDom.DocumentElement;
它最终看起来像这样:
<Rulebase xmlns="version=0 author=username date=7/13/2011 </Rulebase>
并且它还将 xmlns="" 附加到我的所有其他节点。
New here, looking to get a little help with my XmlDocument. Is it possible to have string data in my root element AND remove the xmlns= attribute from being shown? I'm looking for something like this:
<Rulebase author=yadda datetime=bingbang version=1.x </Rulebase>
When I try to use my string data by doing:
xmlDom.AppendChild(xmlDom.CreateElement("", "Rulebase", data));
XmlElement xmlRoot = xmlDom.DocumentElement;
It ends up looking like this:
<Rulebase xmlns="version=0 author=username date=7/13/2011 </Rulebase>
and it also appends xmlns="" to all my other nodes.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您使用的
CreateElement
重载采用前缀作为第一个参数,本地名称作为第二个参数,命名空间作为第三个参数。如果您不需要命名空间,请不要使用此重载。只需使用以本地名称作为唯一参数的那个即可。然后将数据单独添加为子元素和属性。创建(已添加格式)
使用
XmlDocument
生成 XML 是相当乏味的。 .NET 中有许多更好的方法,例如XmlSerializer
和DataContractSerializer
。您还可以使用 Linq-to-Xml 和XElement
。或者您可以使用XmlWriter.Create()
。有很多选择。The
CreateElement
overload you're using takes a prefix as it's first argument, local name as second, and namespace as third. If you don't want a namespace, don't use this overload. Just use the one that takes a local name as the one and only argument. Then add your data separately as child elements and attributes.Creates (formatting added)
Using
XmlDocument
to generate XML is pretty tedious though. There are many better ways in .NET, likeXmlSerializer
andDataContractSerializer
. You can also use Linq-to-Xml andXElement
. Or you can use anXmlWriter.Create()
. Lots of options.