【发布时间】:2012-01-10 12:12:46
【问题描述】:
如here 所述,DOMConfiguration 尚未实现。我需要对命名空间进行规范化,这样只要提供了前缀,子元素中的命名空间就会移动到根元素。
有没有任何非正则表达式的方法来做到这一点?
不过,我不确定DOMConfiguration 是否可以做到这一点,但我什至无法尝试,如您所见。
也许有办法通过设置 libxml?
谢谢。
【问题讨论】:
-
为了澄清:
DOMDocument::normalizeDocument默认不会这样做? -
你可以考虑使用 xslt
-
您当然可以通过DOMXPath 选择候选节点并使用标准DOM API 进行必要的更改。此外,您可以通过DOMDocument::load 等的第二个参数访问libxml settings(不确定它们是否会有所帮助,但您可以在此处指定它们)。
-
加载功能在这里似乎很有帮助。谢谢你。但是,我已经更改了应用程序,以非常严格的方式处理 DOM 上的命名空间。因此不再需要清理。另外:DOMDocument::normalizeDocument 只清理节点之间的空白字符,因此通过子节点的迭代不需要您检查文本节点。
-
@user498380:请添加您的解决方案作为答案(并接受它,是的,它有效;)) - 如果您有一些示例代码,也可以随意添加它,甚至如果只是示范,它通常会说一千多个单词。
标签: php dom namespaces normalization