编辑:实例现在包含有我的主文档故障转换XML文档URL
大家在所有标签!我只是对XSLT有个简单的问题。我有一个很大的xml文件,其中嵌套了许多<DIMENSION_Id>
节点。在每个<DIMENSION_Id>
节点中有两个SYN标记:<SYN>String</SYN><SYN>Integer</SYN>
我想要做的是将每个DIMENSION_Id的最远的子节点连接到它的所有祖先路径以创建一个URL。
即
<DIMENSIONS VERSION="1.0.0">
<DIMENSION NAME="Category" SRC_TYPE="INTERNAL">
<DIMENSION_NODE ID="1000"/>
<DIMENSION_Id>
<SYN>Text</SYN>
<SYN>Number</SYN>
<DIMENSION_Id>
<SYN>More Text</SYN>
<SYN>Another Number</SYN>
</DIMENSION_Id>
</DIMENSION_Id>
</DIMENSION>
</DIMENSIONS>
我写了这个XSLT先获得从父节点的所有信息,然后最后创建一个完整的URL子节点。不幸的是,它只给了我最远的子节点的信息......我不知道如何附加任何其他文本。 (应改为类似:最远的父/接近父/母/ item_selected)
不幸的是它是所有给我当前节点的值....下面是我写的XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/DIMENSION_NODE">
<xsl:for-each select="ancestor-or-self::*">
<xsl:value-of select="@SYN" />
<xsl:text>/</xsl:text>
<xsl:value-of select="." />
<xsl:value-of select="@SYN" />
<xsl:text>/</xsl:text>
<xsl:value-of select="." />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
在此先感谢您的帮助!
你的问题配方不好。您的输入样本与样式表不符,也不符合您的期望结果。请纠正这一点。 – 2010-10-05 16:19:23
请原谅我,但我不明白你需要告诉我什么信息。我想要的是让这就是在父SYN一路孩子,所以它看起来像一个URL值,即: GRANDPARENT_SYN_VALuE/PARENT_SYN_VALUE/CURRENT_NODE_SYN_VALUE 为每个XML节点。接下来我需要做的是将第二个SYN值中的整数与URL匹配......但我主要关心的是实际的URL字符串。如果你需要我进一步澄清,请让我知道.. – Daniel 2010-10-05 17:02:44
通过制定不佳的问题,我的意思是:'GRANDPARENT_SYN_VALuE/PARENT_SYN_VALUE' ...但你有**两个**'SYN'元素;你的样式表匹配输入样本中不存在的'DIMENSION_NODE'根元素;你试图用' '输出'SYN'属性和'DIMENSION_NODE'元素的字符串值...... –
2010-10-05 17:53:48