关于自动生成XSL文件的控件的问题。(200分)

  • 主题发起人 主题发起人 狐狸精
  • 开始时间 开始时间

狐狸精

Unregistered / Unconfirmed
GUEST, unregistred user!
现在我要开发一个控件,用做根据XML文件动态生成XSL样式文件(用Delphi弄)。
XML文件的格式就是一下一种:
<report>
<title>数据测试</title>
<fields index="1">
<fieldname>
<field1>字段01</field1>
<field2>字段02</field2>
……
</fieldname>
<fielddata>
<field1>466</field1>
<field2>678</field2>
……
</fielddata>
……
</fields>
……
<origin type="sqlserver" sql="select ......."/>
</report>
 
怎么就没人回答??
 
"动态生成XSL样式文件"的具体含义、功能是什么?
 
就是XML文件的格式不变,但里面的字段可以有多有少,就是要该控件能跟据不同的XML文件
生成XSL样式文件。
 
既然XML文件的格式不变(我猜应该是XML的结构/DTD不变),你把 XSL 文件写得能够应付
XML文件里字段有多有少就可以了。比如用些<xsl:if>,一般犯不着动态做 XSL。

我们论坛的 xsl 为例,问题回复是给注册用户的。注册用户的 dfwml 会有
<USER Name="yysun">...</USER>,非注册用户没有。所以,xsl 是这样的:

<xsl:for-each select="DFWML/USER">
<xsl:if test="@Name[.!='']">
<xsl:value-of select="@Name" />,您好!
</xsl:if>
</xsl:for-each>
 
这个控件肯定要动态生成XML文件和XSL文件的,因为我是用它来实现用户自定义报表的。
比如:有一个StringGrid1是用来显示从数据库中检索出来的数据的(都一封装成一个个小
的XML文件),一个StringGrid2用来显示报表所需的数据,数据从StringGrid1通过拖放
的方式放入StringGrid2。要跟据StringGrid2的数据生成相应的XML文件和对应的XSL样式
文件。并把所有的从数据库里检索出来的数据的XML文件合并成一个XML文件,在这个文件中
还应加入一段标识被报表选中的数据。
 
我已经自己解决了,分数就平分给各位了。[8D][8D]
 
多人接受答案了。
 
后退
顶部