Xpath上升一级

时间:2014-05-05 01:46:37

标签: xml xpath

我想使用这个XPath表达式

/moviedb/movie/title[@lang="english"] | /moviedb/movie/title[@lang="english"]/..runtime

我想过滤掉标题及其运行时属性为“english”的电影,但我不知道如果我在/ moviedb / movie / title后又回到/ moviedb / movie 完整的XML文件:

<moviedb>
<movie>
    <imdbid>tt0838283</imdbid>
    <genres>Comedy</genres>
    <languages>English,Spanish</languages>
    <country>USA</country>
    <rating>6.8</rating>
    <runtime>106</runtime>
    <title lang="spanish">Step Brothers</title>
    <year>2008</year>
  </movie>
  <movie>
    <imdbid>tt2886734</imdbid>
    <genres>Drama</genres>
    <languages>English</languages>
    <country>USA</country>
    <rating>7.5</rating>
    <runtime>125</runtime>
    <title lang="english">A Life, Taken</title>
    <year>2014</year>
  </movie>
</moviedb>

感谢

1 个答案:

答案 0 :(得分:3)

你可以这样做:

/moviedb/movie[./title/@lang="english"]/runtime

演示(使用xmllint):

$ xmllint input.xml --xpath '/moviedb/movie[./title/@lang="english"]/runtime'
<runtime>125</runtime>