通过搜索属性名称从xmlnodelist中提取xmlnode [英] extract xmlnode from xmlnodelist by searching atribute name

查看:102
本文介绍了通过搜索属性名称从xmlnodelist中提取xmlnode的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我有这样的xml



< screen>

< area id =1>< / area>

< area> rajni< / area>

< area> xyz< / area>





现在,我想提取只有属性id的区域节点。

Hi,
I have a xml like this

<screen>
<area id="1"></area>
<area>rajni</area>
<area>xyz</area>


Now,I want to extract node of area with attribute id only.

推荐答案

此处 [ ^ ]是XPath的指南。



此处 [ ^ ]是一些参考卡,值得打印出来。



类似于/ area [@id =''1''],猜测。
Here[^] is a guide to XPath.

Here[^] are some reference cards, worth printing out.

Something like "/area[@id=''1'']", at a guess.


我本可以给你一个直接的解决方案但是更愿意你学习abo这样你就可以在将来自己解决类似的问题。阅读本文,详细介绍了所有内容以及如何使用XPATH获取所需的节点和属性:使用XPath和XmlDocument(C#)操纵XML数据 [ ^ ]
I could have given you a direct solution but would prefer you to learn about it such that you can resolve similar issues by yourself in future. Go through this article that details everything and how you can use XPATH to get desired nodes and attributes: Manipulate XML data with XPath and XmlDocument (C#)[^]


//你可以使用LINQ

使用System.Xml.Linq添加以下命名空间

;

//只需在xml中添加父标记,或者如果你的xml有,则在该标记上激活linq查询

//you can use LINQ for that
add below namespace
using System.Xml.Linq;
// just add parent tag in you xml like or if ur xml have then fire linq query over that tag
<Test>
  <area id="1">Deverloper</area>
  <area>rajni</area>
  <area>xyz</area>
</Test>



//之后创建xdocument的对象这个

XDocument xmldoc = XDocument.Load(@ur xml文件的路径/或字符串形式的xml);

//然后
var result = xmldoc.Element(Test)。Elements(area)。Single(a => (int?)a。属性(id)== 1)。值;

//这将带来你的结果。



谢谢


//After that create object of xdocument like this
XDocument xmldoc = XDocument.Load(@"path of ur xml file/or xml in string form");
//then
var result= xmldoc.Element("Test").Elements("area").Single(a => (int?)a.Attribute("id") == 1).Value;
//This will bring your result.

Thanks


这篇关于通过搜索属性名称从xmlnodelist中提取xmlnode的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆