Xml Xpath获取具有不同值的节点(删除尾随空格和前导空格)
我有一个XML文档,在该文档中,我试图选择具有不同值的节点,删除前导和尾随空格 我正在使用以下Xml Xpath获取具有不同值的节点(删除尾随空格和前导空格),xml,xslt,xpath,xalan,Xml,Xslt,Xpath,Xalan,我有一个XML文档,在该文档中,我试图选择具有不同值的节点,删除前导和尾随空格 我正在使用以下Xpath,它正在工作: ROW[COUNTRY[not(text() = following::ROW/COUNTRY[text()])]] 但是当我在上面的xpath中使用normalizespace(text())时,返回的结果是不正确的 XML: <?xml version="1.0" encoding="UTF-8"?> <ROOT> <ROW>
Xpath
,它正在工作:
ROW[COUNTRY[not(text() = following::ROW/COUNTRY[text()])]]
但是当我在上面的xpath
中使用normalizespace(text())
时,返回的结果是不正确的
XML:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<ROW>
<COUNTRY>
<![CDATA[USA]]>
</COUNTRY>
</ROW>
<ROW>
<COUNTRY>
<![CDATA[ USA]]>
</COUNTRY>
</ROW>
</ROOT>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes" />
<xsl:template match="@*|node()">
<xsl:apply-templates select="@*|node()" />
</xsl:template>
<xsl:template match="ROW[COUNTRY[not(normalize-space(text()) = following::ROW/COUNTRY[normalize-space(text())])]]">
<tr>
<xsl:value-of select="normalize-space(./COUNTRY)"></xsl:value-of>
</tr>
</xsl:template>
</xsl:transform>
XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<ROW>
<COUNTRY>
<![CDATA[USA]]>
</COUNTRY>
</ROW>
<ROW>
<COUNTRY>
<![CDATA[ USA]]>
</COUNTRY>
</ROW>
</ROOT>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes" />
<xsl:template match="@*|node()">
<xsl:apply-templates select="@*|node()" />
</xsl:template>
<xsl:template match="ROW[COUNTRY[not(normalize-space(text()) = following::ROW/COUNTRY[normalize-space(text())])]]">
<tr>
<xsl:value-of select="normalize-space(./COUNTRY)"></xsl:value-of>
</tr>
</xsl:template>
</xsl:transform>
使用明钦语分组:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes" />
<xsl:key name="group" match="ROW" use="normalize-space(COUNTRY)"/>
<xsl:template match="@*|node()">
<xsl:apply-templates select="@*|node()" />
</xsl:template>
<xsl:template match="ROW[generate-id() = generate-id(key('group', normalize-space(COUNTRY))[1])]">
<tr>
<xsl:value-of select="normalize-space(./COUNTRY)"></xsl:value-of>
</tr>
</xsl:template>
</xsl:transform>
您应该在这个问题的实际文本中包含使用的XML和XSL,而不是链接到它。如果链接停止运行,这将使这个问题和答案在将来更有价值。