1

目前我正在使用并查看了此代码http://us.php.net/manual/en/function.xml-set-element-handler.php#85970 如何获取标签之间的文本?

我正在使用 php5 和 XML 解析器

4

2 回答 2

3

这应该解释它:

 xml_set_character_data_handler ( $parser, 'tagContent' );

 function tagContent ( $parser, $content )
 {
 }
于 2009-10-05T16:10:58.113 回答
1

除非您知道自己在做什么,否则不要使用 PHP 的 XML Parser - 它是一个 SAX 解析器,需要您了解 SAX 事件的概念。除非您需要非常快速地处理非常大的 XML 文件,否则您不需要它。对于 99% 的情况,您不需要使用它。根据您的问题,您只需打开一个 XML 文件并搜索特定标签并提取该标签中包含的字符串。为此,您应该使用 DOM 或 SimpleXML 解析器。SimpleXML 允许您使用 XPath - 请参阅此示例代码,它可以广泛地满足您的需求。(如果你想使用 DOM,你必须在 PHP 站点上寻找它——我不能发布超链接,因为我是新手——请注意不要将它与旧的 PHP4 XML 解析器 DOMXML 混淆.)

如果我误读了这个并且您确实想学习如何使用 SAX 解析,Google 会提供帮助 - 但基本理论是这样的:您的代码会将完整的文档作为一系列事件来处理。每个事件将代表文档中的某些内容 - 从文档的开头开始,然后打开和关闭每个元素,解析每个属性,以及解析每个字符串。你需要有代码来监听你感兴趣的事件——当一个元素被打开和关闭时——然后从中查看正在打开的元素是否是你想要的——如果是,你需要告诉处理文本的事件处理程序,它现在应该侦听文本并将您要查找的任何文本存储到变量中。当你完成后,

同样,基于这个问题,听起来您需要 DOM 或 SimpleXML 而不是 SAX。

于 2009-10-05T16:17:02.703 回答