使用此單個XPath表達式:
/*/*[not(string-length(preceding-sibling::*|following-sibling::*)
>
string-length()
)
]
XSLT - 基於驗證:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:copy-of select=
"/*/*[not(string-length(preceding-sibling::*|following-sibling::*)
>
string-length()
)
]"/>
</xsl:template>
</xsl:stylesheet>
當這個變換所提供的XML文檔應用:
<record>
<url1>http://www.google.com</url1>
<url2>http://www.bing.com</url2>
</record>
XPath表達式求值和該評價(所選元素)的結果被複制到輸出:
<url1>http://www.google.com</url1>
網址的最大數量可能是什麼? – choroba
爲了這個例子的目的,我們假設不超過兩個。將有三種可能的情況之一:url1但不是url2,在這種情況下url1應該被返回; url2但不是url1,在這種情況下,應該返回url2;或兩者兼而有之,在這種情況下,贏得的時間越長。 – agoldencom
我想我應該補充一點:我使用.NET,這意味着它需要XPath 1.0 – agoldencom