使用 LINQ to XML 选择元素
我有以下 XML。
<logs version="1.3.1.1" xmlns="http://www.witsml.org/schemas/131">
<log uidWell="001" uidWellbore="001" uid="0c43e8df-ed63-41e4-878f-d1e5dd3b97d1">
<startIndex uom="m">200.29</startIndex>
<endIndex uom="m">209.73</endIndex>
<logCurveInfo>
<mnemonic>hkldAv1</mnemonic>
</logCurveInfo>
<logCurveInfo>
<mnemonic>DEPTH</mnemonic>
</logCurveInfo>
<logCurveInfo>
<mnemonic>wobAv1</mnemonic>
</logCurveInfo>
<logCurveInfo>
<mnemonic>ropAv1</mnemonic>
</logCurveInfo>
<logData />
</log>
</logs>
我想从 XML 中检索元素
。
我尝试过,
XDocument xDoc = XDocument.Load(@"e:\data.xml");
XNamespace xmlns = "http://www.witsml.org/schemas/131";
XElement xlog = xDoc.Element(xmlns + "logData");
但它为 xlog
返回 null。
I have the following XML.
<logs version="1.3.1.1" xmlns="http://www.witsml.org/schemas/131">
<log uidWell="001" uidWellbore="001" uid="0c43e8df-ed63-41e4-878f-d1e5dd3b97d1">
<startIndex uom="m">200.29</startIndex>
<endIndex uom="m">209.73</endIndex>
<logCurveInfo>
<mnemonic>hkldAv1</mnemonic>
</logCurveInfo>
<logCurveInfo>
<mnemonic>DEPTH</mnemonic>
</logCurveInfo>
<logCurveInfo>
<mnemonic>wobAv1</mnemonic>
</logCurveInfo>
<logCurveInfo>
<mnemonic>ropAv1</mnemonic>
</logCurveInfo>
<logData />
</log>
</logs>
I want to retrieve the element <logData>
from the XML.
I have tried with,
XDocument xDoc = XDocument.Load(@"e:\data.xml");
XNamespace xmlns = "http://www.witsml.org/schemas/131";
XElement xlog = xDoc.Element(xmlns + "logData");
But it is returning null for xlog
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要使用 Descendants() 更深入地了解层次结构,如下所示:
这将为您提供包含所有 logData 的可枚举值。
You need to go deeper in the hierarchy using
Descendants()
, like this:Which will give you an enumerable with all logData.