xml – 用xsl输出纯文本

我需要使用XSL从XML生成简单的纯文本输出。由于我没有在线找到任何好的简洁的例子,所以我决定在这里发布我的解决方案。任何指向更好的例子的链接当然会被赞赏:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" >
    <xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
    <xsl:template match="/">
        <xsl:for-each select="script/command" xml:space="preserve">at -f <xsl:value-of select="username"/> <xsl:value-of select="startTime/@hours"/>:<xsl:value-of select="startTime/@minutes"/> <xsl:value-of select="startDate"/><xsl:text>
</xsl:text></xsl:for-each> 
    </xsl:template>
</xsl:stylesheet>

在这里帮助我的几件重要事情:

>使用xsl:output在输出文档的开头省略标准声明
>使用xml:space =“preserve”属性来保留我在xsl:for-each标签内写的任何空格。这也需要我在单行(除了换行符除外)之外,在每个标签中也包括该标签的所有代码。
>使用插入换行符 – 再次我不得不在这里省略标准的xml缩进。

这个xslt的结果和期望的输出是:

at -f alluser 23:58 17.4.2010
at -f ggroup67 7:58 28.4.2010
at -f ggroup70 15:58 18.4.2010
at -f alluser 23:58 18.4.2010
at -f ggroup61 7:58 22.9.2010
at -f ggroup60 23:58 21.9.2010
at -f alluser 3:58 22.9.2010

正如我所说,任何关于如何做这个更优雅的建议将不胜感激。

后续2011-05-08:

这里是我正在处理的xml的类型:

<script xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="script.xsd">
    <command>
        <username>alluser</username>
        <startTime minutes="58" hours="23"/>
        <startDate>17.4.2010</startDate>
    </command>
</script>
>您可以定义一个模板来匹配脚本/命令,并消除xsl:for-each
> concat()可以用来缩短表达式,并保存你不要显式地插入这么多的< xsl:text>和< xsl:value-of>元素。
>使用实体引用& #xA;对于回车,而不是依赖于保留< xsl:text>之间的换行符。元素有点安全,因为代码格式化不会弄乱你的换行符。此外,对我来说,它读作一个明确的换行符,更容易理解意图。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:fo="http://www.w3.org/1999/XSL/Format" >
    <xsl:output method="text" omit-xml-declaration="yes" indent="no"/>

    <xsl:template match="script/command">
        <xsl:value-of select="concat('at -f ',username,' ',startTime/@hours,':',startTime/@minutes,startDate,'&#xA;')"/>
    </xsl:template>

</xsl:stylesheet>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇