我面临相同级别和特定顺序的相同名称节点的问题。我的订单取决于他们节点的价值。我的输出应该是一个txt文件。我的 XML 看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<header>
<B>
<element>
<value>10</value>
<value>test</value>
</element>
</B>
<A>
<element>
<value>100</value>
<value>message</value>
</element>
</A>
<B>
<element>
<value>20</value>
<value>phase</value>
</element>
</B>
<A>
<element>
<value>101</value>
<value>type</value>
</element>
</A>
<B>
<element>
<value>20</value>
<value>phase</value>
</element>
</B>
<A>
<element>
<value>101</value>
<value>type</value>
</element>
</A>
</header>
我的 txt 输出应该是这样的。
typephase typephase
等等。
我的 XSL 看起来像这样
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="text" indent="yes" />
<xsl:template match="header/*">
<xsl:if test="name(.) = 'A' and element/value='101'">
<xsl:value-of select="element/value[position()=2]" />
</xsl:if>
<xsl:if test="name(.) = 'B' and element/value='20'">
<xsl:value-of select="element/value[position()=2]" />
</xsl:if>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="/">
<xsl:apply-templates select="header/*"></xsl:apply-templates>
</xsl:template>
这个 XSL 的结果是:
相型相型
xsl:sort descending 对我没有帮助,因为原始输入 XML 有更多的节点。我需要来自 XSL 而不是来自输入 XML 文档的命令。有谁知道,如何解决这个问题?