我是XSLT的新手,我正在努力让这个正确格式化。我希望输出HTML基本上是这样的行:
1 : SO090040717 113657 XXX 56371444826
其中“SalesId”是一个可点击的URL,格式化(在本例中)基本上是:
<a href="dynamics://TEST?DrillDown_0?tableid=40276&field=RecId&value=5637144826&company=XXX">SO090040717</a>
错误似乎出现在<a></a>
文字的某个地方?
示例XML:
<ELEMENT>
<RECORD>
<COUNTER>1</COUNTER>
<DRILLDOWNGROUP>TEST</DRILLDOWNGROUP>
<SalesId>SO090040717</SalesId>
<PurchOrderFormNum>113657</PurchOrderFormNum>
<dataAreaId>XXX</dataAreaId>
<RecId>5637144826</RecId>
<TableId>40276</TableId>
</RECORD>
</ELEMENT>
我的,非工作的,XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="ELEMENT">
<p>
<xsl:for-each select="RECORD">
<p>
<xsl:value-of select="COUNTER"/>
<xsl:text> : </xsl:text>
<a>
<xsl:attribute name="href">
<xsl:text>Dynamics://</xsl:text>
<xsl:value-of select="DrillDownGroup"/>
<xsl:text>?DrillDown_0?tableid=</xsl:text>
<xsl:value-of select="TableId"/>
<xsl:text>&field=RecId&value=</xsl:text>
<xsl:value-of select="RecId"/>
<xsl:text>&company=</xsl:text>
<xsl:value-of select="DataAreaId"/>
</xsl:attribute>
<xsl:value-of select="SALESID"/>
</a>
<xsl:text> </xsl:text>
<xsl:value-of select="PurchOrderFormNum"/>
<xsl:text> </xsl:text>
<xsl:value-of select="dataAreaId"/>
<xsl:text> </xsl:text>
<xsl:value-of select="RecId"/>
<br/>
<br/>
</p>
</xsl:for-each>
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:0)
一些事情:
select
属性中的路径与源XML相同。
未声明实体,因此请使用十六进制或十进制引用。如果需要,您可以为nbsp创建实体声明。在示例中,我使用了十六进制引用。如果您想要一个nbsp。&
。它更容易使用&
。我在示例中使用了&
。如果您想使用CDATA,请执行以下操作:<xsl:text><![CDATA[&company=]]></xsl:text>
XSLT 1.0
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="ELEMENT">
<p>
<xsl:for-each select="RECORD">
<p>
<xsl:value-of select="COUNTER"/>
<xsl:text> : </xsl:text>
<a>
<xsl:attribute name="href">
<xsl:text>dynamics://</xsl:text>
<xsl:value-of select="DRILLDOWNGROUP"/>
<xsl:text>?DrillDown_0?tableid=</xsl:text>
<xsl:value-of select="TableId"/>
<xsl:text>&field=RecId&value=</xsl:text>
<xsl:value-of select="RecId"/>
<xsl:text>&company=</xsl:text>
<xsl:value-of select="dataAreaId"/>
</xsl:attribute>
<xsl:value-of select="SalesId"/>
</a>
<xsl:text>   </xsl:text>
<xsl:value-of select="PurchOrderFormNum"/>
<xsl:text>   </xsl:text>
<xsl:value-of select="dataAreaId"/>
<xsl:text>   </xsl:text>
<xsl:value-of select="RecId"/>
<br/>
<br/>
</p>
</xsl:for-each>
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<强>输出强>
<html>
<body>
<p>
<p>1 : <a href="dynamics://TEST?DrillDown_0?tableid=40276&field=RecId&value=5637144826&company=XXX">SO090040717</a> 113657 XXX 5637144826<br><br></p>
</p>
</body>
</html>