对于此XML,

<MediaFiles>
  <MediaFile id="" bitrate="670" type="video/mp4">
    http://example.com/test.mp4
  </MediaFile>
  <MediaFile id="" bitrate="1800" type="video/mp4">
    http://example.com/test2.mp4
  </MediaFile>
  <MediaFile id="" bitrate="600" type="video/x-flv">
    http://example.com/test3.mp4
  </MediaFile>
  <MediaFile id="" bitrate="450" type="video/x-flv">
    http://example.com/test4.mp4
  </MediaFile>
</MediaFiles>


我的问题是如何获得具有最高Mediafile@bitrate(在这种情况下,我应该获得http://example.com/test2.mp4,因为@bitrate属性最高为1800)。

例如,我可以使用Mediafiles获取数组

/VAST/Ad/InLine/Creatives/Creative/Linear/MediaFiles/MediaFile

最佳答案

这是使用XPath选择具有最大或最小属性值的元素的方法:

最大值

//MediaFile[not(@bitrate < ../MediaFile/@bitrate)][1]


最低要求

//MediaFile[not(@bitrate > ../MediaFile/@bitrate)][1]


(如果希望所有[1]元素与最大/最小MediaFile值绑定在一起,则丢弃尾随的@bitrate。)

10-06 13:49