我正在使用XDocument构建XML。这是我的代码
var ns = XNamespace.Get("url");
XDocument requestXMl = new XDocument(
new XElement(ns+"WEB_REQUEST",
new XElement("HTTP_HEADER_INFORMATION",
new XElement("DEFINED_HEADERS",
new XElement("HTTP_DEFINED_REQUEST_HEADER",
new XElement("ItemNameType", "RequestDate"),
new XElement("ItemValue", _currentTime)
),
new XElement("HTTP_DEFINED_REQUEST_HEADER",
new XElement("ItemNameType", "AuthorizationValue"),
new XElement("ItemValue", credentials)
)
)
),
new XElement("COLL",
new XElement("TID", _t),
new XElement("SID", _s)
)
)
);
此代码的输出为
<WEB_REQUEST xmlns="url">
<HTTP_HEADER_INFORMATION xmlns="">
<DEFINED_HEADERS>
<HTTP_DEFINED_REQUEST_HEADER>
<ItemNameType>RequestDate</ItemNameType>
<ItemValue>Wed,06 May 2015 18:14:33 GMT</ItemValue>
</HTTP_DEFINED_REQUEST_HEADER>
<HTTP_DEFINED_REQUEST_HEADER>
<ItemNameType>AuthorizationValue</ItemNameType>
<ItemValue>ieuKB5voR3w==</ItemValue>
</HTTP_DEFINED_REQUEST_HEADER>
</DEFINED_HEADERS>
</HTTP_HEADER_INFORMATION>
<COLL xmlns="">
<TID></TID>
<SID></SID>
</COLL>
</WEB_REQUEST>
我不希望xmlns出现在输出中3次。 我希望它只出现2次。
<WEB_REQUEST xmlns="url">
<COLLABORATION xmlns="">
我怎样才能做到这一点?
答案 0 :(得分:0)
为您不希望拥有空xmlns的元素指定“url”命名空间。 这将清除除根元素之外的所有xml命名空间:
var ns = XNamespace.Get("url");
XDocument requestXMl = new XDocument(
new XElement(ns+"WEB_REQUEST",
new XElement(ns+"HTTP_HEADER_INFORMATION",
new XElement(ns+"DEFINED_HEADERS",
new XElement(ns+"HTTP_DEFINED_REQUEST_HEADER",
new XElement(ns+"ItemNameType", "RequestDate"),
new XElement(ns+"ItemValue", _currentTime)
),
new XElement(ns+"HTTP_DEFINED_REQUEST_HEADER",
new XElement(ns+"ItemNameType", "AuthorizationValue"),
new XElement(ns+"ItemValue", credentials)
)
)
),
new XElement(ns + "COLL",
new XElement(ns + "TID", _t),
new XElement(ns + "SID", _s)
)
)
);