Xslt 提取xml元素和子节点值
我有一个以下类型的xmlXslt 提取xml元素和子节点值,xslt,xml-parsing,Xslt,Xml Parsing,我有一个以下类型的xml `<ns:response> <ns:transport_car> <ns:transport_model> abc</ns:transport_model> <ns:transport_model> xyz</ns:transport_model> </ns:transport_car> </ns:response>` 这是怎么回事 <xsl
`<ns:response>
<ns:transport_car>
<ns:transport_model> abc</ns:transport_model>
<ns:transport_model> xyz</ns:transport_model>
</ns:transport_car>
</ns:response>`
这是怎么回事
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="something">
<xsl:output method="text" indent="yes"/>
<xsl:template match="/*">
<xsl:apply-templates
select="*[substring-after(local-name(), 'transport_') != '']" />
</xsl:template>
<xsl:template match="/*/*">
<xsl:value-of
select="concat('Transport type= ',
substring-after(local-name(), 'transport_'),
'
Model name:
')"/>
<xsl:apply-templates select="ns:transport_model" />
</xsl:template>
<xsl:template match="ns:transport_model">
<xsl:value-of select="concat(normalize-space(), ' ')"/>
</xsl:template>
</xsl:stylesheet>
这是怎么回事
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="something">
<xsl:output method="text" indent="yes"/>
<xsl:template match="/*">
<xsl:apply-templates
select="*[substring-after(local-name(), 'transport_') != '']" />
</xsl:template>
<xsl:template match="/*/*">
<xsl:value-of
select="concat('Transport type= ',
substring-after(local-name(), 'transport_'),
'
Model name:
')"/>
<xsl:apply-templates select="ns:transport_model" />
</xsl:template>
<xsl:template match="ns:transport_model">
<xsl:value-of select="concat(normalize-space(), ' ')"/>
</xsl:template>
</xsl:stylesheet>
此转换:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="some:ns">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*/*[starts-with(local-name(), 'transport_')]">
<xsl:text>Transport type= </xsl:text>
<xsl:value-of select="substring-after(local-name(), 'transport_')"/>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="ns:transport_model[1]">
Model name:
<xsl:value-of select="normalize-space()"/>
</xsl:template>
</xsl:stylesheet>
此转换:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="some:ns">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*/*[starts-with(local-name(), 'transport_')]">
<xsl:text>Transport type= </xsl:text>
<xsl:value-of select="substring-after(local-name(), 'transport_')"/>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="ns:transport_model[1]">
Model name:
<xsl:value-of select="normalize-space()"/>
</xsl:template>
</xsl:stylesheet>
<ns:response xmlns:ns="some:ns">
<ns:transport_car>
<ns:transport_model> abc</ns:transport_model>
<ns:transport_model> xyz</ns:transport_model>
</ns:transport_car>
</ns:response>
Transport type= car
Model name:
abc xyz