Xpath查询C#中的已知属性 [英] Xpath Query for known attributes in C#

查看:148
本文介绍了Xpath查询C#中的已知属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我下面有XML

Hi All,

I have below XML

<Header>
  <reference>
    <identifier>BatchProcessed</identifier>
    <datetime>2011-08-15T05:12:00+10:00</datetime>
  </reference>
</Header>
<Header>
  <reference>
    <identifier>Running</identifier>
    <datetime>2011-08-15T05:12:00+10:00</datetime>
  </reference>
</Header>



我正在尝试对xpath查询以在Indentifier中找出此值"BatchProcessed".

请更正我,这是我查询中的内容,但不起作用



Am trying to xpath query to find out this value "BatchProcessed" in Indentifier.

Please correct me ,this what i have in my query but its not working

//Header[@Identifier=''BatchProcessed'']<br />


在Advance中感谢


Thanks in Advance

推荐答案

您的XPath几乎是正确的.您只需要省略@符号. @符号用于指示您正在尝试检查属性.要检查元素内容,您只需要忽略@:

Your XPath was almost correct. You''ll just have to leave out the @ sign. The @ sign is used to indicate that you are trying to check an attribute. To check for element content all you need to to is omit the @:

//Header/reference[Identifier = "BatchProcessed"]



我不确定是否真的需要双引号,但是我把它们放在通常以这种方式编写XPath的地方.您的XPath将获取所有具有子元素reference和子子元素identifier且文本值为"BatchProcessed"的Header标记.

最好的问候,

—MRB



I''m not sure if the double quotes are really needed, but I put them there just the same as I usually write my XPaths that way. Your XPath will fetch you all Header tags that have child elements reference with sub children identifier with a text value of "BatchProcessed".

Best Regards,

—MRB


请参阅此链接

http://msdn.microsoft.com/en-us/library/ms256086.aspx [ ^ ]



您的XML格式没有根元素.请包括根元素

Please refer this link

http://msdn.microsoft.com/en-us/library/ms256086.aspx[^]

OR

You XML format doesn''t have root element. Please include the root element

<root>
   <header>
      <reference>
        <identifier>BatchProcessed</identifier>
        <datetime>2011-08-15T05:12:00+10:00</datetime>
      </reference>
    </header>
    <header>
      <reference>
        <identifier>Running</identifier>
        <datetime>2011-08-15T05:12:00+10:00</datetime>
      </reference>
    </header>
</root>



并且可以使用C#代码查找特定的节点.



and use can use C# code to find the particular Node.

XmlDocument oDoc = new XmlDocument();
oDoc.LoadXml(sXML);
XmlNodeList list = oDoc.SelectNodes("//root/Header/reference[identifier = 'BatchProcessed']");


这篇关于Xpath查询C#中的已知属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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