0
我需要在rowdata標籤中顯示rowdata的內容時使用formats標籤。需要讀取前一個節點的子值以使用xsl格式化當前節點的值?
的XML是如下: 「temp.xml」
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="Temp.xsl"?>
<ALL_DATA>
<TITLES>
<VALUE1>Title1</VALUE1>
<VALUE2>Title2</VALUE2>
<FVALUE1>Title3</FVALUE1>
</TITLES>
<FORMATS>
<VALUE1>I5</VALUE1>
<VALUE2>I3</VALUE2>
<FVALUE1>F1.1</FVALUE1>
</FORMATS>
<MY_DATA>
<ROWDATA>
<VALUE1>5</VALUE1>
<VALUE2>33</VALUE2>
<FVALUE1>2.11</FVALUE1>
</ROWDATA>
<ROWDATA>
<VALUE1>34</VALUE1>
<VALUE2>12</VALUE2>
<FVALUE1>239.81</FVALUE1>
</ROWDATA>
</MY_DATA>
</ALL_DATA>
我試圖XSL是: 「temp.xsl」
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:template name="MY_TEMPLATE" match="/">
<html>
<body>
<table border="1">
<TR border="1">
<xsl:for-each select="/ALL_DATA/TITLES/*">
<th border="1">
<xsl:value-of select="."/>
</th>
</xsl:for-each>
</TR>
<xsl:for-each select="/ALL_DATA/MY_DATA/ROWDATA">
<TR>
<xsl:for-each select="*">
<TD width ="130">
<xsl:value-of select="."/>:-:
<xsl:variable name="cur_node_name" select="name(.)"/>
<xsl:for-each select="/ALL_DATA/FORMATS[name(.)]">
<!--<xsl:template match="$cur_node_name"> -->
<xsl:value-of select="."/>
<!--</xsl:template>-->
</xsl:for-each>
</TD>
</xsl:for-each>
</TR>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
對不起,我要發佈全部內容。 我覺得我可以得到一些幫助。在上面的xml中,我想在顯示Mydata/rowdata/value1時使用formats/value1。 上述Xsl重複標題塊並在<th>
中顯示標題。然後第二個for-each塊將遍歷rowdata及其子項。 在顯示子項目時,我需要使用格式標籤來顯示rowdata的子項。
上面的xsl是給用於第三標籤FValue1輸出爲:"2.11:-: I5 I3 F1.1"
;但我的期望是:"2.11:-: F1.1"
。如果我得到這個解決方案,我可以做其餘的。我知道只是通過修改inner for循環,這是可能的。但不能拿到
請幫助,如果任何人有意見怎麼樣。 謝謝。
是否有可能以顯示您預期的輸出,因爲這將有很大的幫助?另外,在您的XSLT中,還有一個FORMATS元素的引用,它不在您的輸入樣本中。謝謝! –
@TimC:是的。 – Flynn1179
我的歉意!我現在看到它... –