按子节点内容搜索XML中的子节点

时间:2015-06-03 19:14:21

标签: java xml xpath

我是一个使用XPath的菜鸟,我有一个问题:如何通过特定名称在所有分支中搜索子项并在XML文件中显示信息?

<?xml version="1.0" encoding="UTF-8"?>
<movie><?xml version="1.0" encoding="UTF-8"?>
<movie>
  <film>
    <name>Peaceful Warrior</name>
    <actor>Scott Mechlowicz</actor>
  </film>
  <film>
    <name>Gone</name>
    <actor>Scott Mechlowicz</actor>
  </film>
  <film>
    <name>Gladiator</name>
    <actor>Russel Crowe</actor>
  </film> 
</movie>

我试过了:

//*[ancestor::movie/film[name = "Scott Mechlowicz"]]

但这显示了所有信息,当我打算只展示该演员参与的电影时。

XPath可以实现这一点,还是必须使用getNameByTagName NodeList

1 个答案:

答案 0 :(得分:2)

您可以使用XPath。如果你只是想获得一个电影名单,试试这个XPath(得到电影的名字,演员=“Scott Mechlowicz”)

//film[actor = "Scott Mechlowicz"]/name

/movie/film[actor = "Scott Mechlowicz"]/name