使用 XMLWriter 跟踪命名空间声明
我正在开发一个 XML Web 服务(在 PHP 中!),为了“正确”地做事情,我想使用 XMLWriter 而不是仅仅连接字符串并希望得到最好的结果。
我使用 ->startElementNS 和 ->writeElementNS 到处使用 XML 命名空间。 问题是,每次我使用这些函数时,也会写入一个新的名称空间声明。
虽然这是正确的语法,但有点不必要。 我想确保我的命名空间声明仅在第一次在文档上下文中使用时写入。
有没有一种简单的方法可以使用 XMLWriter 来解决这个问题,或者我是否坚持子类化它并手动管理它。
谢谢, 翻转
I'm working on an XML webservice (in PHP!), and in order to do things 'right', I want to use XMLWriter instead of just concatinating strings and hoping for the best.
I'm using XML namespaces everywhere using ->startElementNS and ->writeElementNS. The problem, is that every time I use these functions a new namespace declaration is also writting.
While this is correct syntax, it's a bit unneeded. I'd like to make sure my namespace declaration is only written the first time it's used in the context of a document.
Is there an easy way to go about this with XMLWriter, or am I stuck subclassing this and managing this manually.
Thanks,
Evert
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在文档中的所需位置写出名称空间,例如在顶部元素中:
这应该以类似的方式结束。
这是有点烦人的 xmlwriter 不跟踪这些声明 - 它允许您编写无效的 xml。 同样令人烦恼的是,该属性是必需的,即使它可以为空 - 而且它是第三个参数,而不是最后一个。
2c 美元,
*-派克
You can write out the namespace once in the desired location in the document, f.e. in the top element:
This should end up something like
It is sort of annoying xmlwriter doesnt keep track of those declarations - it allows you write invalid xml. It's also annoying the attribute is required, even if it can be null - and that its the third argument, not the last.
$2c,
*-pike
您可以传递 NULL 作为 uri 参数。
prints
You can pass NULL as the uri parameter.
prints