gpt4 book ai didi

xml - 创建xml文档: inline vs template language

转载 作者:行者123 更新时间:2023-12-04 06:24:40 25 4
gpt4 key购买 nike

当我创建 XML 文档时,我使用 Perl,但这个问题与语言无关。大多数人似乎使用 XML::Writer 或 XML::LibXML 等工具来完成这项任务。它看起来像这样:

my $writer = XML::Writer->new();
my $type = "fancy";
$writer->startTag("pants");
$writer->characters($type);
$writer->endTag("pants");

我有点讨厌这个。感觉就像您作为初学者 Web 开发人员创建的第一个网页,您将所有 HTML、CSS 和 PHP 代码混合在同一个文件中,因为您还没有了解 MVC。每个人都同意这很糟糕,我们应该把这一切分开,并尽量保持语言分开。如果没有别的,它可以提高可读性。

那么为什么可以将 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 通常用作可移植的数据序列化格式。原型(prototype)示例从一些嵌套的 HoHoA 数据结构开始,并通过通用序列化接口(interface)将其转换为 XML。序列化系统只有一个数据结构要遍历,所以没有模板结构。

此外,即使有更好的方法,人们也倾向于使用他们学到的第一种技术。我猜大多数人首先会遇到用于数据序列化(而不是结构化文档存储)的 XML,因此即使模板方法更简洁,他们也会继续使用序列化技术。

所有这些(甚至是第一段)同样适用于 JSON(甚至 HTML)。

关于xml - 创建xml文档: inline vs template language,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6173959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com