xpath:在同一级别上组合多个过滤器

时间:2015-05-24 08:15:58

标签: xpath

我拼命想在xpath中组合几个过滤器。假设我的数据如下:

button1 = new RadioButton(**getActivity()**);

我的愿望是访问所有“当前”节点

  • 包含状态类别“两个”
  • 有一个状态,但没有 包含“DELETE”

我试图在stackoverflow上提出几个问题:

例如,我的一个查询就是:

  • <Table name="MyTable1"> <Item> <Status date="2015-03-01" category="one/two">DELETE</Status> <Old /> <Current> <Field name="ID">1</Field> <Field name="Title">This is my title</Field> <Field name="Short_title">my short title</Field> <Field name="Order">1</Field> </Current> </Item> <Item> <Status date="2015-03-01" category="one/two">EQUAL</Status> <Old /> <Current> <Field name="ID">2</Field> <Field name="Title">here comes another title</Field> <Field name="Short_title">another short one</Field> <Field name="Order">2</Field> </Current> </Item> </Table>

任何想法可能是更好的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用以下XPath表达式:

//Status[contains(@category,"two") and not(text()="DELETE")]/following-sibling::Current

答案 1 :(得分:1)

您可以直接将两个布尔表达式与and组合,不要在每个表达式周围放置方括号。 :

/Table/Item[Status[contains(@category,'two') and not(contains(., 'DELETE'))]]/Current