我有一个包含以下命名空间的XML:
<AUTOSAR xsi:schemaLocation="http://autosar.org/3.1.4 autosar_3-1-4.xsd" xmlns="http://autosar.org/3.1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
我已经编写了代码来将节点附加到XML文件中的特定级别,一切正常但是对于我第一次创建的节点,它添加了,例如:&lt;功能名称 - 值 xmlns =&#34;&#34; &gt; (粗体文字中的部分)。我希望此标记具有XML中所有其他标记的名称空间,但这是创建新节点时自动生成的额外部分。如何处理这个问题。 Ps:我没有在C#代码中声明任何命名空间。
这是我尝试追加的XML的一部分:
<FUNCTION-NAME-VALUE>
<DEFINITION-REF DEST="FUNCTION-NAME-DEF">/AUTOSAR/Com/ComConfig/ComSignal/ComInvalidNotification</DEFINITION-REF>
<VALUE>Rte_COMCbkInv_EPS_SteeringTorque</VALUE>
</FUNCTION-NAME-VALUE>
这是我面临的问题:
<FUNCTION-NAME-VALUE xmlns="">
<DEFINITION-REF DEST="FUNCTION-NAME-DEF">/AUTOSAR/Com/ComConfig/ComSignal/ComInvalidNotification</DEFINITION-REF>
<VALUE>Rte_COMCbkInv_EPS_SteeringTorque</VALUE>
</FUNCTION-NAME-VALUE>
在我创建的所有这些代码中,只有第一个代码会出现 xmlns:&#34;&#34; 问题。
这是为创建这些节点而编写的C#代码:
if (funChilds[m].InnerText != "/AUTOSAR/Com/ComConfig/ComSignal/ComNotification")
{
XmlNode newNode = doc.CreateElement("FUNCTION-NAME-VALUE");
XmlNode defNode_func = doc.CreateElement("DEFINITION-REF");
XmlAttribute attr = doc.CreateAttribute("DEST");
attr.Value = "FUNCTION-NAME-DEF";
defNode_func.Attributes.SetNamedItem(attr);
defNode_func.InnerText = "/AUTOSAR/Com/ComConfig/ComSignal/ComInvalidNotification";
XmlNode valNode_func = doc.CreateElement("VALUE");
valNode_func.InnerText = ("");
newNode.AppendChild(defNode_func);
newNode.AppendChild(valNode_func);
def_ref[j].AppendChild(newNode);
}
请让我知道为摆脱这个问题所做的必要修改。
答案 0 :(得分:0)
固定!
如果为新创建的元素指定了名称空间,则可以解决空白名称空间的问题!
XmlNode defNode_func = doc.CreateElement("DEFINITION-REF", "NamespaceURI");