编写XML时,最好手动编写它,还是在PHP中使用诸如simpleXML之类的生成器?
我通常是这样手写xml的:
<tag><?= $value ?></tag>
找到了诸如simpleXML之类的工具之后,我应该改用那些工具吗?使用这样的工具执行此操作有什么好处?
解决方案
好的XML工具将确保生成的XML文件根据我们使用的DTD进行正确的验证。
好的XML工具还可以节省大量的标签重复输入。
使用发电机。
使用生成器的好处是我们具有一致的标记,并且不会冒用手指括住方括号或者引号或者忘记编码内容的风险。这一点至关重要,因为除非我们进行了重大测试以确保否则,否则直到运行时才会发现这些错误。
如果我们处理的是少量XML,那么手动进行操作几乎没有什么危害(只要可以避免输入错误)。但是,对于较大的文档,通常最好使,该编辑器可以根据架构验证文档并防止输入错误。
手写并不总是最好的做法,因为在大型XML中,ou可能会写错标签,并且可能很难找到错误原因。因此,我建议使用XMl解析器来创建XML文件。
始终使用某种工具。 XML可能非常复杂,我知道PHP的人已经习惯了使用hackey这样的小工具,但是如果有人不使用System.XML来创建XML,它在.NET世界中就会产生巨大的代码味道。
使用良好的XML生成器将大大减少由于手指肥大,注意力不集中或者其他任何人为因素造成的潜在错误。但是,有几种不同级别的机器帮助可供选择:
- 至少要使用程序员的文本编辑器来进行语法高亮显示和自动缩进。只是注意到文字颜色与我们期望的颜色不同,或者未按照期望的方式排列,可能会提示我们输入错字,否则我们可能会错过。
- 更好的是,退后一步,将XML编写为我们喜欢的任何语言的数据结构,而不是将数据结构转换为XML。 Perl为我们提供了一些模块,例如轻型XML :: Simple(用于小型工作)或者更高级的XML :: Generator;。使用
XML :: Simple
只是将内容安排到哈希的标准Perl哈希中,并通过适当的方法运行它。
-史蒂夫
我们可以使用DOM扩展,要进行编码则很麻烦。我个人认为,从头开始编写XML文档的最有效方法是PHP附带的XMLWriter扩展,并且在最新版本中默认启用。
$w=new XMLWriter(); $w->openMemory(); $w->startDocument('1.0','UTF-8'); $w->startElement("root"); $w->writeAttribute("ah", "OK"); $w->text('Wow, it works!'); $w->endElement(); echo htmlentities($w->outputMemory(true));
通过任何类型的字符串操作来生产XML都为错误进入代码打开了方便之门。例如,如果$ value包含与号,则我们发布的极其简单的示例将不会生成格式正确的XML。
XML中没有很多极端的情况,但是有足够的时间来浪费我们编写自己的代码来处理它们的时间。 (而且,如果我们不处理它们,那么代码将有一天意外地失败。没人愿意。)任何好的XML工具都将自动处理这些情况。
eclipse中的XML工具也非常有用。只需创建一个新的xml模式和文档,我们就可以轻松使用大多数图形工具。我想指出的是,对模式的工作方式有一个事先的了解是很有用的。
速度可能是个问题...手写可能更快。