如何在 PHP 中从 XML 文档中检索注释
我想使用 PHP 提取 XML 文档中特定节点下的所有注释。我已经尝试了 SimpleXML 和 DOMDocument 方法,但我一直得到空白输出。有没有一种方法可以从文档中检索注释而不必求助于正则表达式?
I want to extract all comments below a specific node within an XML document, using PHP. I have tried both the SimpleXML and DOMDocument methods, but I keep getting blank outputs. Is there a way to retrieve comments from within a document without having to resort to Regex?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
SimpleXML 无法处理注释,但 DOM 扩展可以。以下是提取所有评论的方法。您只需调整 XPath 表达式以定位所需的节点。
SimpleXML cannot handle comments, but the DOM extension can. Here's how you can extract all the comments. You just have to adapt the XPath expression to target the node you want.
您有权访问 XPath API 吗? XPath 允许您使用(例如)查找评论
Do you have access to an XPath API ? XPath allows you to find comments using (e.g.)
使用 XMLReader。注释可以很容易地检测/找到,它们是 COMMENT 类型的 xml 元素。
有关详细信息,请参阅 PHP 文档:XMLReader 类
代码示例:
并在数组 $ 中注释 您将拥有 XML 文件中找到的所有注释。
Use XMLReader. Comments can be easily detected/found, they are xml elements of type COMMENT.
For details see PHP documentation: The XMLReader class
Code example:
And in array $comments you will have all comments found in XML file.
如果您使用 SAX 事件驱动解析器,解析器应该有一个注释事件。例如,当使用 Expat 时,您将实现一个处理程序并使用以下命令设置它:
If you are using a SAX event driven-parser, the parser should have an event for comments. For example, when using Expat you would implement a handler and set it using: