xml – 是XSLT值得吗?

前一段时间,我开始了一个项目,我设计了一个html-esque XML模式,以便作者可以用简化的格式编写他们的内容(教育课程材料),然后通过XSLT转换为HTML。我玩了一段时间,玩了一段时间,然后得到了一个非常基本的水平,但后来被我遇到的限制太too ann了(这可能是我的知识的限制),当我读一个博客建议沟XSLT,只是用你自己选择的语言编写自己的XML-to-any解析器,我急切地跳到那里,它的出色完成。

我仍然在这工作到这一天(我实际上应该是在它的工作,而不是在SO),我看到越来越多的事情,使我认为决定甩开XSLT是一个好的。

我知道XSLT有它的地方,因为它是一个公认的标准,如果每个人都在写自己的口译,其中90%将最终在TheDailyWTF.但鉴于它是一个functional style language而不是程序风格,最程序员都很熟悉,对于某人开始一个项目,如我自己,你会建议他们沿着我做的路径,或坚持使用XSLT?

XSLT的优点:

>特定于XML的域,因此例如不需要在输出中引用文字XML。
>支持XPath / XQuery,它可以是一种很好的查询DOM的方式,就像使用正则表达式可以很好地查询字符串一样。
>功能语言。

XSLT的缺点:

>可以是淫秽的冗长 – 你不必引用文字XML,这有效地意味着你必须报价代码。而不是一个漂亮的方式。但再次,它没有比你的典型SSI差多少。
>不做某些大多数程序员认为理所当然的事情。例如字符串操作可以是一个杂事。这可能导致“不幸的时刻”,当新手设计代码,然后疯狂地搜索网络提示如何实现他们认为只是在那里的功能,没有给自己的时间写。
>功能语言。

顺便说一下,获得过程行为的一种方法是将多个变换链接在一起。在每个步骤后,您有一个全新的DOM工作,反映该步骤中的更改。一些XSL处理器有扩展,有效地做到这一点在一个转换,但我忘了细节。

所以,如果你的代码主要是输出和没有太多的逻辑,XSLT可以是一个非常整洁的方式来表达它。如果有很多逻辑,但大多数是内置到XSLT的表单(选择所有的元素,看起来像blah,并为每个输出blah),它可能是一个相当友好的环境。如果你喜欢在任何时候都思考XML,那么给XSLT 2。

否则,我会说,如果你最喜欢的编程语言有一个良好的DOM实现支持XPath,并允许您以有用的方式构建文档,那么使用XSLT几乎没有什么好处。绑定到libxml2和gdome2应该做得很好,并且没有耻于坚持通用语言,你知道很好。

自制的XML解析器通常是不完整的(在这种情况下,你会变得不稳定的一天),否则不会比你可能已经下架了(这种情况下你可能浪费你的时间),并给予您有任何数量的机会引入围绕恶意输入的严重安全问题。不要写一个,除非你知道你通过这样做得到什么。这不是说你不能写一个比XML更简单的解析器作为输入格式,如果你不需要一切XML提供。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 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轻松学习总节篇