以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- [求助]如何实现这个功能? (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=50125) |
-- 作者:landofdreams -- 发布时间:7/17/2007 6:42:00 PM -- [求助]如何实现这个功能? <?xml ?> <CustomerData> <Transaction> <DSLFIELDS> <ID>89</ID> <ADDR>94458</ADDR> </DSLFILEDS> </Transaction> //...多个Transaction </CustomerData> 要求是这样: 1.根据ID、ADDR对Transaction排序,同时增加两个字段ID_OMR,ADDR_OMR;规则如下: 举例 2. 在源文件比较大的情况下,XSLT processor的性能如何?哪个更好? 哪位大侠帮忙给出完整的xsl文件,不胜感激。
|
-- 作者:Qr -- 发布时间:7/17/2007 6:55:00 PM -- 看这个: http://bbs.xml.org.cn/dispbbs.asp?boardID=8&ID=50054 看懂了,答案就出来了 ![]() 还有这个:http://bbs.xml.org.cn/dispbbs.asp?boardID=8&ID=50062 |
-- 作者:landofdreams -- 发布时间:7/17/2007 7:50:00 PM -- 我理解这两个例子的语法。但理解不等于能自己写出来。 想按Transaction排序,还要插入两个新的字段。哪位大侠能搞定?我试了很久。 |
-- 作者:Qr -- 发布时间:7/18/2007 8:57:00 AM -- 按Transaction排序?怎么可能! 插入新字段可用:<xsl:element>,例:<xsl:element name="ID_OMR">这里是文本</xsl:element> |
-- 作者:landofdreams -- 发布时间:7/18/2007 9:27:00 AM -- 按Transaction排序,我觉得可行。首先把每个Transaction/DSLFIELDS/ID和ADDR设为Transaction的属性。然后再按这两个属性排序。我已经在XMLSpy运行成功。 <Transaction ID="22" ADDR="78324"> 关键是第一步,我设置Transaction属性时取不到ID和ADDR值。也许是value-of的select的XPath有误。 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" exclude-result-prefixes="xs fn xsl"> |
-- 作者:Qr -- 发布时间:7/18/2007 9:40:00 AM -- 取属性值要在属性名前加@ |
-- 作者:landofdreams -- 发布时间:7/18/2007 9:59:00 AM -- 我知道取属性加@ 我的问题是设置Transaction的属性,取值的时候出问题了。 |
-- 作者:Qr -- 发布时间:7/18/2007 10:06:00 AM -- 偶觉得没什么两样,想不明白你所指的问题。 |
-- 作者:landofdreams -- 发布时间:7/18/2007 10:16:00 AM -- 通过XSL将以下XML转化成下一个XML, <?xml ?> 结果: <?xml ?> 以下XSL有错误,哪位大侠指正 |
-- 作者:Qr -- 发布时间:7/18/2007 11:11:00 AM -- <xsl:template match="/"> <CustomerData> <xsl:for-each select="CustomerData/Transaction/DSLFIELDS"> <xsl:call-template name="inserting"/> </xsl:for-each> </CustomerData> </xsl:template> <xsl:template name="inserting"> <xsl:element name="Transaction"> <xsl:attribute name="ID"> <xsl:value-of select="ID" /> </xsl:attribute> <xsl:attribute name="ADDR"> <xsl:value-of select="ADDR" /> </xsl:attribute> <DSLFIELDS> <ID><xsl:value-of select="ID" /></ID> <ADDR><xsl:value-of select="ADDR" /></ADDR> </DSLFIELDS> </xsl:element> </xsl:template> |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
125.000ms |