Xml XSLT合并来自相关节点的信息
我正在寻找XSLT(1.0)样式表。 我有类似的输入:Xml XSLT合并来自相关节点的信息,xml,xslt,Xml,Xslt,我正在寻找XSLT(1.0)样式表。 我有类似的输入: <?xml version="1.0" encoding="ISO-8859-1"?> <city country="USA"> Washington </city> <city country="USA"> New York </city> <city country="Germany"> Berlin </city> <country
<?xml version="1.0" encoding="ISO-8859-1"?>
<city country="USA">
Washington
</city>
<city country="USA">
New York
</city>
<city country="Germany">
Berlin
</city>
<country size="big">
USA
</country>
<country size="small">
Germany
</country>
我正在尝试一些类似于嵌套for each循环的方法。但是当我在另一个节点内时,我不知道如何访问该节点
如果这是一个重复的问题,我很抱歉:问题可能是我真的不知道如何表达我的问题来找到类似的问题。嵌套循环是不必要的。以下样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates select="/*/country"/>
</xsl:template>
<xsl:template match="country">
<xsl:text>Country </xsl:text>
<xsl:value-of select="."/>
<xsl:text>
Size: </xsl:text>
<xsl:value-of select="@size"/>
<xsl:text>
Cities:
</xsl:text>
<xsl:apply-templates select="../city[@country=current()/text()]"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="city">
<xsl:apply-templates/>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
注意:您提供的输入包含大量重要的空白,我在示例中删除了这些空白
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates select="/*/country"/>
</xsl:template>
<xsl:template match="country">
<xsl:text>Country </xsl:text>
<xsl:value-of select="."/>
<xsl:text>
Size: </xsl:text>
<xsl:value-of select="@size"/>
<xsl:text>
Cities:
</xsl:text>
<xsl:apply-templates select="../city[@country=current()/text()]"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="city">
<xsl:apply-templates/>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
<root>
<city country="USA">Washington</city>
<city country="USA">New York</city>
<city country="Germany">Berlin</city>
<country size="big">USA</country>
<country size="small">Germany</country>
</root>
Country USA
Size: big
Cities:
Washington
New York
Country Germany
Size: small
Cities:
Berlin