Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 作为子节点添加新节点会自动添加xmlns属性_C#_Xml_Xml Namespaces - Fatal编程技术网

C# 作为子节点添加新节点会自动添加xmlns属性

C# 作为子节点添加新节点会自动添加xmlns属性,c#,xml,xml-namespaces,C#,Xml,Xml Namespaces,我正在尝试修改一个XML文档。XML的结构如下所示: <?xml version='1.0' encoding='iso-8859-1'?> <Modelo39 xmlns="http://www.dgci.gov.pt/2002/OT" versao="1"> <Rosto> <QuadroInicio /> <Quadro01> <Q01C01>555555555</Q01C01> </Quadr

我正在尝试修改一个XML文档。XML的结构如下所示:

<?xml version='1.0' encoding='iso-8859-1'?>
 <Modelo39 xmlns="http://www.dgci.gov.pt/2002/OT" versao="1">
<Rosto>
<QuadroInicio />
<Quadro01>
  <Q01C01>555555555</Q01C01>
</Quadro01>
<Quadro06>
  <Rostoq06T>

  </Rostoq06T>
</Quadro06>
</Rosto>
</Modelo39>
<Rostoq06T-Linha numero="1">
<NIF>100000000</NIF>
<CodRend>01</CodRend>
<Rendimento>2500</Rendimento>
<Retido>500</Retido>
</Rostoq06T-Linha>
<Rostoq06T-Linha numero="1" xmlns="">
我的问题是Rosto06T Linha的生成方式如下:

<?xml version='1.0' encoding='iso-8859-1'?>
 <Modelo39 xmlns="http://www.dgci.gov.pt/2002/OT" versao="1">
<Rosto>
<QuadroInicio />
<Quadro01>
  <Q01C01>555555555</Q01C01>
</Quadro01>
<Quadro06>
  <Rostoq06T>

  </Rostoq06T>
</Quadro06>
</Rosto>
</Modelo39>
<Rostoq06T-Linha numero="1">
<NIF>100000000</NIF>
<CodRend>01</CodRend>
<Rendimento>2500</Rendimento>
<Retido>500</Retido>
</Rostoq06T-Linha>
<Rostoq06T-Linha numero="1" xmlns="">

如果该元素是Rostoq06T的子元素,我不明白为什么要将属性xmlns添加到此节点


有人能帮我解决这个问题吗?

因为您创建了
Rostoq06T Linha
元素,而没有名称空间,即空名称空间

必须使用正确的
CreateElement
重载

XmlElement node06T = xmlDoc.CreateElement("Rostoq06T-Linha","http://www.dgci.gov.pt/2002/OT");

不幸的是,您必须为您创建的所有子项指定完整的命名空间

因为您创建了
Rostoq06T Linha
元素,而没有名称空间,即空名称空间

必须使用正确的
CreateElement
重载

XmlElement node06T = xmlDoc.CreateElement("Rostoq06T-Linha","http://www.dgci.gov.pt/2002/OT");

不幸的是,您必须为您创建的所有子项指定完整的命名空间

您好,我认为您应该指定在调用xmlDoc.CreateElement时希望将XmlNode作为节点类型,查看重载…您好,我认为您应该指定在调用xmlDoc.CreateElement时希望将XmlNode作为节点类型,查看重载…这是必须发送到资源的XML。您认为在Rostoq06T Linha中使用xmls属性会影响XML的整个验证吗?
xmlns
不是一个属性,而是一个名称空间定义。元素上的命名空间不正确与元素上的本地名称不正确相当。谢谢。我已经像在中一样添加了名称空间,现在,当我保存xml文档时,在中只有一个名称空间。所有其他空的xml名称空间都消失了。我猜这是因为编译器看到名称空间已经在父节点中,所以他没有添加另一个具有相同值的名称空间。这是一个必须发送到资源的XML。您认为在Rostoq06T Linha中使用xmls属性会影响XML的整个验证吗?
xmlns
不是一个属性,而是一个名称空间定义。元素上的命名空间不正确与元素上的本地名称不正确相当。谢谢。我已经像在中一样添加了名称空间,现在,当我保存xml文档时,在中只有一个名称空间。所有其他空的xml名称空间都消失了。我猜这是因为编译器看到名称空间已经在父节点中,所以他没有添加另一个具有相同值的名称空间。