XPath获取具有最大/最小属性值的元素

时间:2016-11-28 20:40:27

标签: xml xpath

对于此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

1 个答案:

答案 0 :(得分:2)

以下是如何使用XPath选择具有最大或最小属性值的元素:

<强>最大

listen 443

<VirtualHost *:443>
    ServerName a.abc.com:443
    SSLEngine on
    SSLProtocol all -SSLv2 
    SSLCertificateFile "/home/certs/abc.com.crt"
    SSLCertificateKeyFile "/home/certs/abc.com.key"
    SSLCertificateChainFile  "/home/certs/abc.com.ca-bundle"
    SSLOptions +StdEnvVars  +ExportCertData 
    ErrorLog "/var/logs/error_abc_443.log"
    TransferLog "/var/logs/error_abc_443.log"
    JkMount  /* worker1

</VirtualHost>


<VirtualHost *:443>
    ServerName c.def.com:443
    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCertificateFile "/home/certs/def.com.crt"
    SSLCertificateKeyFile "/home/certs/def.com.key"
    SSLCertificateChainFile  "/home/certs/def.com.ca-bundle"
    SSLOptions +StdEnvVars  +ExportCertData
    ErrorLog "/var/logs/error_def.log"
    TransferLog "/var/logs/error_def.log"
    JkMount  /* worker2
</VirtualHost> 

<强>最小

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

(如果您希望所有//MediaFile[not(@bitrate > ../MediaFile/@bitrate)][1] 元素与最大/最小[1]值绑定,请删除尾随MediaFile。)