如何解决创建xml文档:内联与模板语言
| 创建XML文档时,我使用Perl,但是这个问题与语言无关。大多数人似乎使用XML :: Writer或XML :: LibXML之类的工具来完成此任务。看起来像这样:my $writer = XML::Writer->new();
my $type = \"fancy\";
$writer->startTag(\"pants\");
$writer->characters($type);
$writer->endTag(\"pants\");
我有点讨厌感觉就像是您作为初学者Web开发人员创建的第一个网页,因为您尚未了解MVC,因此将所有HTML,CSS和PHP代码混合在同一文件中。每个人都认为这很糟糕,我们应该将所有内容分开,并尝试尽可能地使语言分开。如果没有别的,它可以提高可读性。
那么,为什么可以将XML放入我们的Perl代码中呢?我的想法是像使用HTML一样使用Template :: Toolkit。所以它看起来像这样:
<pants>
[% type %]
<pants>
之后,我可以将结果插入XML :: LibXML并验证字符串。
但是我不认为有人这样做。为什么不?我想念什么吗?
解决方法
我已经将Template :: Toolkit用于XML。我还使用了更具编程性的XML :: Writer样式方法。
如果您有一个固定的XML结构,只是要填充数据,并且已经有了Template :: Toolkit,那么对XML使用TT模板就很有意义了。在这种情况下使用模板可能会使正确匹配所需模式变得容易得多。但是,当然,要注意对XML而不是HTML进行正确的转义和编码。
如果您正在以编程方式将任意结构化数据转换为XML,那么XML :: Writer可能是一个更好的选择:如果您没有固定的架构,那么就没有模板可言。
XML通常用作可移植数据序列化格式。原型示例从一些嵌套的HoHoA数据结构开始,然后通过通用的序列化接口将其转换为XML。序列化系统仅具有要遍历的数据结构,因此没有要模板的结构。
而且,即使有更好的方法,人们也倾向于使用他们学习的第一种技术。我猜想大多数人会首先使用XML进行数据序列化(而不是结构化文档存储),因此即使模板方法更干净,他们仍会继续使用序列化技术。
所有这些(甚至第一段)同样适用于JSON(甚至HTML)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。