解析 Querypath 中有问题的 XML(元素中的点)
我正在尝试使用查询路径解析 NewsML (http://www.iptc.org/std/NewsML-G2/2.7/examples/LISTING2_NewsML-G2_Complete.xml)文档。但我在处理某些元素中的点时遇到了麻烦,例如
。
在一些 Firefox 查询路径插件中,我可以用反斜杠转义点,但在 php pear 库中这不起作用。
有什么想法吗?
(我正在 Querypath 中寻找解决方案,而不是寻找解决方法)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
过去,我使用 Tidy PHP 扩展 (http://us3.php.net/manual/en/book.tidy.php) 在将 HTML/XML 传递到 QueryPath 之前清理它。
您上面引用的 XML 非常干净,而且也非常小。
如果唯一的问题是元素名称中的点,那么使用正则表达式进行预处理也可能有效。这将是最快的解决方案。我猜你可以执行
preg_replace('/ 并将其修复。 (这会将
body.content
替换为body-content
等等。)In the past, I've used the Tidy PHP extension (http://us3.php.net/manual/en/book.tidy.php) to clean up HTML/XML before passing it into QueryPath.
The XML you referenced above is pretty clean, and also pretty small.
If the only issue is dots in element names, preprocessing with a regular expression would probably work, too. And it would be the fastest solution. I'm guessing you could do a
preg_replace('/<body\./g', '<body-', $xml)
and have it fixed. (That would replacebody.content
withbody-content
and so on.)