將XAttribute的命名空間添加到父XElement時意外進行修改。將System.Xml.Linq.XAttribute命名空間添加到XElement時意外修改
我有一些F#代碼看起來像這樣:
let myRoot = XElement(XName.Get("MyRoot"))
let mychildxelement = XElement(XName.Get("MyXElement"))
myRoot.Add(mychildxelement)
myRoot.Add(XAttribute(XNamespace.Xmlns + "odata", "http://mynamespace"))
let name = XNamespace.Get("odata") + myattrname
mychildxelement.Add(XAttribute(name, "false"))
不幸的是,當我打印出來myRoot(myRoot.ToString()
),它會生成以下XML:
<MyRoot xmlns:odata="http://mynamespace">
<MyXElement p3:myattrname="false" xmlns:p3="odata" />
</MyRoot>
出於某種原因,它正在改變將命名空間設置爲「p3」並在XElement的根級別添加額外的名稱空間快捷方式。我真的想避免Element level xmlns。有誰知道如何避免這種情況?
請提供一個[MCVE](http://stackoverflow.com/help/mcve) – CaringDev