水晶报告中的漂亮打印XML

时间:2009-09-25 18:59:28

标签: xml crystal-reports

我有一份包含一些XML数据的水晶报告。此XML字符串存储在数据库列(Oracle 10g)中。现在,报告只是将整个字符串显示在一个大丑陋的混乱中。有没有什么好方法可以打印xml(将标签放在单独的行上,也可以缩进嵌套标签),甚至可以像报告中的其他数据一样格式化xml?

我目前最好的想法(最好并不意味着好),就是在我看到><所有地方做一个字符串替换,以便至少每个标记都在一个单独的行上。

将xml字符串传递到子报表并让子报表使用该xml作为其数据源的方法是多么棒。对于我的目的来说,几乎同样好的是在水晶中的某个地方的prettyprintXML函数,它将以一种很好的方式格式化原始xml。我可以访问Crystal 11。 谢谢。

编辑 - 到目前为止,我很感谢你的帮助,但我已经知道37种不同的方法可以在Crystal之外做到这一点。我正在寻找一种在Crystal Reports设计工具中运行的解决方案。

2 个答案:

答案 0 :(得分:0)

如果您在网页上使用此功能,我相信您应该能够使用css文件对其进行格式化。但您也可以在Crystal Reports之外使用XSLT。以下是一些可能有用的链接。

Link for Displaying XML with CSS

Link for to a css with crystal reports question on SO

Link of an example of XSLT instead of Crystal Reports

答案 1 :(得分:0)

通过标识转换XSLT发送XML结果,输出indent属性设置为yes。
它将输出相同的内容,但“漂亮打印”

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="node() | @*">
   <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
   </xsl:copy>
</xsl:template>

</xsl:stylesheet>