I sh, чтобы вернуть все <nodes>
, которые имеют теги с атрибутами k = network & v = LU. Примечание. LU может быть частью строки. Это XML просто возвращает список <tag k="network" v="LU"/>
Если есть какие-либо другие улучшения, которые я могу сделать, обратите внимание на них.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="osm">
<xsl:copy>
<xsl:apply-templates select="node/tag[@k='network' and @v='LU']"/>
</xsl:copy>
</xsl:template>
Оригинал XML:
<osm>
<node>
<tag k="railway" v="station"/>
<tag k="network" v="LU"/>
</node>
<node>
<tag k="railway" v="station"/>
<tag k="network" v="NR"/>
<tag k="operator" v="LU"/>
</node>
<node>
<tag k="railway" v="station"/>
<tag k="network" v="NR,LU"/>
<tag k="operator" v="LU"/>
</node>
<...snip...>
</osm>
Желаемый выход
<osm>
<node>
<tag k="railway" v="station"/>
<tag k="network" v="LU"/>
</node>
<node>
<tag k="railway" v="station"/>
<tag k="network" v="NR,LU"/>
<tag k="operator" v="LU"/>
</node>
</osm>