如果xdocument具有namespace属性,则无法获取xelement值。这是我的代码:
string ts = @"<TestNameSpace xmlns='http://www.w3.org/2001/XMLSchema'>
<requestID>
<client>xxxx</client>
<id>yyyy</id>
<timestamp>zzzz</timestamp>
</requestID>
</TestNameSpace>";
XDocument doc1 = XDocument.Parse(ts);
XElement reqID = doc1.Root.Element("requestID");
我的问题是reqID在上面的代码中返回null数据。如果没有xmlns属性或xmlns的空值,则reqID将获得正确的数据。
有谁能告诉我上面的代码有什么问题?
感谢提前。
答案 0 :(得分:1)
您需要先定义XNamespace
:
XNamespace ns = "http://www.w3.org/2001/XMLSchema";
然后在您的查询中使用它:
XDocument doc1 = XDocument.Parse(ts);
XElement reqID = doc1.Root.Element(ns + "requestID");
答案 1 :(得分:0)
试试这样:
string xml =
@"<TestNameSpace xmlns='http://www.w3.org/2001/XMLSchema'>
<requestID>
<client>xxxx</client>
<id>yyyy</id>
<timestamp>zzzz</timestamp>
</requestID>
</TestNameSpace>";
var doc = XDocument.Parse(xml);
XNamespace ns = "http://www.w3.org/2001/XMLSchema";
var reqID = doc.Root.Element(ns + "requestID");