【发布时间】:2023-04-07 01:15:01
【问题描述】:
我正在使用 XmlDocument 和 XmlNode 来操作 xml 文件。假设我想在根目录中添加一个名为“Language”的有效节点,我使用这样的代码:
Dim languageNode As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element, "Language", Nothing)
languageNode.InnerText = "en-US"
root.AppendChild(languageNode)
其中 xmlDoc 是一个 XmlDocument 对象并且已经被加载。但是,在运行后的xml文件中,却是这样的:
<Language xmlns="">en-US</Language>
这并没有通过验证。反正有没有摆脱命名空间?谢谢!
更新: 我正在编辑一个 .rdlc 文件,它定义了一个本地报告,并使用 xml 格式。部分文件如下所示:
<?xml version="1.0" encoding="utf-16"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition"
xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<Language xmlns="">en-US</Language>
...
通常不应该使用这么多的命名空间,但我是从 xslt 生成的。但是生成此文件后会添加 Language 节点。我的代码如下所示:
Dim xmlRdlc As New XmlDocument()
xmlRdlc.Load(file)
Dim root As XmlNode = xmlRdlc.DocumentElement()
Dim languageNode As XmlNode = xmlRdlc.CreateNode(XmlNodeType.Element, "Language", Nothing)
languageNode.InnerText = "en-US"
root.AppendChild(languageNode)
xmlRdlc.Save(file)
那么我应该怎么做才能像这样添加所需的节点:
<Language>en-US</Language>
【问题讨论】:
-
这就是您告诉它添加的内容。默认(空)命名空间中名为“Language”的节点。您在寻找什么 XML?从根目录显示。
-
您应该使用相关的 XML 编辑您的问题。在编辑器中选择 XML 并单击“{}”按钮以缩进 4 使其成为代码块。
-
@JohnSaunders,请查看我的更新
-
更好。只需发布一个更完整的示例,说明您希望 XML 是什么样子。
-
@JohnSaunders,我没有完成它。刚刚被编辑器卡住了
标签: .net xml namespaces xmlnode