quali sono quei nodi che hanno un attributo in cui il nome di attributo inizia con val
Uso:
//div[@*[starts-with(name(), 'val')]]
questo modo si seleziona ogni elemento div
nel documento, che presenta almeno un attributo, il cui nome inizia con la stringa "val"
.
XSLT - basata verifica:
Questa trasformazione:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select="//div[@*[starts-with(name(), 'val')]]"/>
</xsl:template>
</xsl:stylesheet>
quando applicato su questo documento XML (prodotta dal frammento XML fornito):
<html>
<div val1="q">a</div>
<div val2="w">b</div>
<div val3="e">c</div>
<div some="r">d</div>
<div thing="t">f</div>
<div name="y">g</div>
</html>
seleziona ed emette i nodi desiderati:
<div val1="q">a</div>
<div val2="w">b</div>
<div val3="e">c</div>
fonte
2011-11-29 14:33:35
ho bisogno di ottenere div elementi wich avere attributi specifici. Non attributi e i loro valori come in '// div/@ * [inizia con (nome (.), 'Val')]' – dom1nga
usando ** nokogiri ** ho ottenuto: '"
funziona con '// div/@ * [inizia-con (nome (.), 'val')]/..' Great thx – dom1nga