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# linq to xml重复命名空间提供空属性_C#_Xml_Linq To Xml - Fatal编程技术网

C# linq to xml重复命名空间提供空属性

C# linq to xml重复命名空间提供空属性,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,有了这个,我得到的是这样的 XNamespace ftc = "urn:v1"; XElement XX = new XElement(ftc + "XX", new XAttribute(XNamespace.Xmlns + "ftc", ftc.NamespaceName), new XAttribute("xmlns", ftc.NamespaceName), new XAttribute("version","1.1"), new XElement(ftc + "YY"

有了这个,我得到的是这样的

XNamespace ftc = "urn:v1";
XElement XX = new XElement(ftc + "XX",
  new XAttribute(XNamespace.Xmlns + "ftc", ftc.NamespaceName),
  new XAttribute("xmlns", ftc.NamespaceName),
  new XAttribute("version","1.1"),

  new XElement(ftc + "YY",                    
    XElement("SIN", "000000"),
    new XElement("Country", "CA")
  )
)

000000
加利福尼亚州
但是我需要没有这个部分

xmlns=“”


SIN
Country
属于
urn:v1
命名空间。文档的默认名称空间为
urn:v1
,因此没有显式名称空间前缀的所有元素都将属于该名称空间

创建这些元素时,它们位于空命名空间中,因此需要生成额外的命名空间声明

<ftc:XX version="1.1" 
  xmlns:ftc="urn:v1" 
  xmlns="urn:v1">     
  <ftc:YY>    
    <SIN xmlns="">000000</SIN>    
    <Country xmlns="">CA</Country>    
  </ftc:YY>
</ftc:XX>

000000
加利福尼亚州

请注意,由于显式名称空间
ftc
与默认名称空间相等,因此不会像您预期的那样生成任何前缀。据我所知,这在每个元素级别上是不可配置的。

谢谢@Jeff,是的,我同意你的意见。但在五月的情况下,我必须这样创造。。
<ftc:XX version="1.1" 
  xmlns:ftc="urn:v1" 
  xmlns="urn:v1">     
  <ftc:YY>    
    <SIN xmlns="">000000</SIN>    
    <Country xmlns="">CA</Country>    
  </ftc:YY>
</ftc:XX>
XNamespace ftc = "urn:v1";
var doc = new XDocument(
    new XElement(ftc + "XX",
        new XAttribute("version", "1.1"),
        new XAttribute(XNamespace.Xmlns + "ftc", ftc),
        new XAttribute("xmlns", ftc),
        new XElement(ftc + "YY",
            new XElement(ftc + "SIN", "000000"),
            new XElement(ftc + "Country", "CA")
        )
    )
);
<XX version="1.1" xmlns:ftc="urn:v1" xmlns="urn:v1">
  <YY>
    <SIN>000000</SIN>
    <Country>CA</Country>
  </YY>
</XX>