Xml 如何从XSL转换中获得唯一值?
我有以下XML文件:Xml 如何从XSL转换中获得唯一值?,xml,xpath,xslt,Xml,Xpath,Xslt,我有以下XML文件: <document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cars.xsd"> <manufacture id="1"> <make>Audi</make> <classification> <list mid="1">
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="cars.xsd">
<manufacture id="1">
<make>Audi</make>
<classification>
<list mid="1">
<type>Sports</type>
</list>
<list mid="2">
<type>Compact</type>
</list>
<list mid="3">
<type>Compact</type>
</list>
</classification>
</manufacture>
<manufacture id="2">
<make>bmw</make>
<classification>
<list mid="1">
<type>Sports</type>
</list>
<list mid="2">
<type>Luxury</type>
</list>
<list mid="3">
<type>Luxury</type>
</list>
</classification>
</manufacture>
</document>
我是XSLT新手,我尝试过使用generate id,如下所示:
但是它对我不起作用,因为我无法理解生成id代码。您提到了生成id,这意味着您可能已经阅读了这里的内容,这确实是您需要获得不同值的内容。当您对类型元素感兴趣时,首先要定义一个键,以便通过它们的值轻松查找这些元素
<xsl:key name="types" match="type" use="." />
当应用于XML时,将输出以下内容
Sports
Compact
Luxury
您提到了generateid,这意味着您可能已经阅读了这里的内容,这确实是您需要获得不同值的内容。当您对类型元素感兴趣时,首先要定义一个键,以便通过它们的值轻松查找这些元素
<xsl:key name="types" match="type" use="." />
当应用于XML时,将输出以下内容
Sports
Compact
Luxury
我认为你要寻找的术语是独特的价值观,而不是独特的价值观。正如Tim C所说,我认为你要寻找的术语是独特的价值观,而不是独特的价值观。正如蒂姆C所说,非常感谢。这是一个非常详细的解释,很容易理解。非常感谢。这是一个非常详细的解释,很容易理解。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:key name="types" match="type" use="." />
<xsl:template match="/">
<xsl:apply-templates select="//type[generate-id() = generate-id(key('types', .)[1])]" />
</xsl:template>
<xsl:template match="type">
<xsl:value-of select="concat(., ' ')" />
</xsl:template>
</xsl:stylesheet>
Sports
Compact
Luxury