<ftc:XX version="1.1"
xmlns:ftc="urn:v1"
xmlns="urn:v1">
<ftc:YY>
<SIN>000000</SIN>
<Country>CA</Country>
</ftc:YY>
</ftc:XX>
这就是我需要创造的东西。但是当我创建它时,它在SIN和Country标签中显示空命名空间。我需要删除它。谁能指导我?
这是我使用的代码,
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")
)
)
有了这个,我得到的就是这样。
<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>
但我需要没有这部分。
的xmlns =&#34;&#34;
答案 0 :(得分:0)
SIN
和Country
属于urn:v1
命名空间。您的文档的默认命名空间为urn:v1
,因此没有显式名称空间前缀的所有元素都属于该命名空间。
当您创建这些元素时,它们位于空命名空间中,因此需要生成额外的命名空间声明。
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>
请注意,由于您的显式名称空间ftc
和默认名称空间相同,因此不会按预期生成任何前缀。据我所知,这在每个元素级别上是不可配置的。