我正在使用 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>