社区
XML/XSL
帖子详情
如何写这个XSLT?
chinahuman
2004-09-04 03:45:58
现在有一个XML文件,里面有一个字段为日期时间型的,比如为UpdateDateTimes
这时候我想只提取里面的日期和当前的日期的差值小于十天的来显示,这时候XSLT文档要怎么写呢?
...全文
246
6
打赏
收藏
如何写这个XSLT?
现在有一个XML文件,里面有一个字段为日期时间型的,比如为UpdateDateTimes 这时候我想只提取里面的日期和当前的日期的差值小于十天的来显示,这时候XSLT文档要怎么写呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
agen10120216
2004-09-14
打赏
举报
回复
学习了
潜水的鱼
2004-09-09
打赏
举报
回复
^_^
colee
2004-09-06
打赏
举报
回复
:)
chinahuman
2004-09-05
打赏
举报
回复
业务需要,导出了一个XML数据文件,要把它格式化成为一个按日期来分组显示的文件。格式化显示XML文件,最适用的就是XSLT来做为XML的显示模板。查遍了MSDN,发现需要用XPATH的函数来对里面的数据进行判断,根据需要来处理是否让这一组数据显示。所以在里面加入了<xsl:if test="……">……</xsl:if>这样标记来做为一次过滤。因为XPATH里面并没有提供日期的处理函数,并且这个日期的判断比较复杂,所以我就自定义了一个函数来处理,为止,我引入了一个自己的命名空间 xmlns:user="http://mycompany.com/mynamespace",然后在这个空间里面定义自己的函数。好的,以下就是实现过程。
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://mycompany.com/mynamespace"><!--定义自己的命名空间,为下面的自己定义函数提供支持 -->
<msxsl:script language="VBScript" implements-prefix="user"><!-- 引入命名空间,定义自已的函数 -->
<![CDATA[
function CheckDate(nodelist)<!-- 自定义函数-->
……
end function
]]>
</msxsl:script>
<xsl:template match="/">
<HTML>
</head>
<BODY>
<TABLE id= "table1" border="1" style= "border-collapse:collapse" width="650">
<xsl:for-each select="Updates/Update">
<xsl:if test="user:CheckDate(string(DateTime))=1"><!-- 根据返回的结果来判断显示还是不显示 -->
<TR>
<TD width="100">文夹名</TD>
<TD width="550"><xsl:value-of select="FileName" /></TD>
</TR>
…………………………………………………………
</xsl:if>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
在代码里面可以看到我先调用了string来转换了XML中DateTime节点的数据类型,因为XML节点中的数据类型可以说是一种变体类型,没有具体的类型,而在这里的脚本函数,即使原来是弱类型的,这时候也会变成强类型,只要数据类型不一致操作就会出错,变体类型的,在里面就没有办法处理,所以先转化成为string,然后在里面再转化成为日期,再做进一步的处理。
同时,发现在XSLT中定义操作的脚本函数时,要用
<![CDATA[
function CheckDate(nodelist)
{
……
}
]]>
这样的形式把函数包围起来,不然会提示找不到函数。
附:
XPATH函数
Node set last(), position(), count(), id(), local-name(), namespace-uri(), name()
String string(), concat(), starts-with(), contains(), substring-before(), substring-after(),
substring(), string-length(),normalize-space(), translate()
Boolean boolean(), not(), true(), false(), lang()
Number number(), sum(), floor(), ceiling(), round()
XSLT 1.0 additions document(), key(), format-number(), current(), unparsed-entity-uri(), generate-id(), system-property()
chinahuman
2004-09-05
打赏
举报
回复
呵呵,我已经搞定了:)还是比较容易的。
看看我BLOG里面的吧
http://webuc.net/chinahuman/archive/2004/09/05/1910.aspx
梅雪香
2004-09-04
打赏
举报
回复
对XSL不是很了解,提两种办法参考吧
1. XML动态生成,生成时只留下符合条件的记录
2. 解析时不要管日期,写到页面上后在body的onload事件里处理,将不合条件的隐藏
不知道合不合你的要求
XSLT
使用的例子
XSLT
使用的例子源码,XML与
XSLT
结合实现页面格式与数据的分离
struts2
xslt
result 实现
由于本人不喜欢(其实不会)用JSP来
写
东西,一堆乱七八糟的东西看了就不爽。于是就研究使用Struts2的
XSLT
result方式来做页面显示。 网上相关的内容非常的少,我也研究了好久才玩转的。一开始总是有一些莫名其妙的问题出现,但最后基本上都是和配置相关的比较多。现在这个例子是整个工程项目都在里面,解压后放到Tomcat的webapps目录下直接可以运行。大家可以看看,少走
写
弯路。但是不是说你可以跳过这一步,你一定要明白为什么要这样做!
java中使用
xslt
转换xml成为另一个xml
java中使用
xslt
转换xml成为另一个xml 将一个xml文件按照你
写
的
xslt
的格式转换成符合你要求的xml文档
XSLT
轻松入门、学习
XML家族的另一种语言
XSLT
,
XSLT
类似HTML中的CSS,但是比CSS功能要强大的多。学习
XSLT
的前提是您对XML已经有一些了解,如果您没有学习过XML,可以先点这里(http://www.etechnic.com.cn/columns/xml_1.shtml)看我先前
写
的一篇文章《XML轻松入门手册》。
XSLT
可以说更偏向是一种程序语言,但它没有常见程序语言复杂,甚至比js等脚本语言还简单,所以不必担心学习困难。阿捷将依然站在普通设计师的角度,用平实易懂的语言,由浅入深的介绍
XSLT
。好了,让我们一起来探索
XSLT
的秘密吧!
XMU《XML》实验任务书
XSLT
1 给定下面的XML文档内容,根据要求为每个问题设计一个
XSLT
文件,并在浏览器中进行浏览以观察结果是否为所要求的形式。 2
写
出此XML文档中按成绩由高到低排序的样式单文件。 3 编
写
book.
xslt
文档,要求在book.xml中打印出所有的section元素(包括属性)及其title子元素(并且保持section元素之间的嵌套关系);输出结果如下:
XML/XSL
8,906
社区成员
22,678
社区内容
发帖
与我相关
我的任务
XML/XSL
XML/XSL相关问题讨论专区
复制链接
扫一扫
分享
社区描述
XML/XSL相关问题讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章