在php </tags>中的<tags>之间获取文本

时间:2009-10-05 16:00:14

标签: php xml xml-parsing

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

我正在使用php5和XML Parser

2 个答案:

答案 0 :(得分:3)

这应该解释一下:

 xml_set_character_data_handler ( $parser, 'tagContent' );

 function tagContent ( $parser, $content )
 {
 }

答案 1 :(得分:1)

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

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

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