在PHP中获取复杂标记之间的文本
我试图从两个html标记之间获取文本,唯一的困难是标记可能与名称不同 我会详细解释:在PHP中获取复杂标记之间的文本,php,regex,tags,expression,Php,Regex,Tags,Expression,我试图从两个html标记之间获取文本,唯一的困难是标记可能与名称不同 我会详细解释: <icon displayid="62115">inv_helmet_130</icon> inv\u头盔\u 130 我得去拿票 inv_头盔_130 但是标签的displayid可以不同,如何解决这个问题呢?也许是有规律的解释,但我不擅长这些 提前感谢。不要使用正则表达式处理HTML 使用专门为XML/HTML设计的东西,例如。它已经是我们的一部分 您想要的XPath表达式将与以
<icon displayid="62115">inv_helmet_130</icon>
inv\u头盔\u 130
我得去拿票
inv_头盔_130
但是标签的displayid可以不同,如何解决这个问题呢?也许是有规律的解释,但我不擅长这些
提前感谢。不要使用正则表达式处理HTML 使用专门为XML/HTML设计的东西,例如。它已经是我们的一部分 您想要的XPath表达式将与以下内容类似:
//icon/text()
它的内容是:“从文档中的任何
图标
元素中选择文本,无论其id或父元素如何。”不要使用正则表达式处理HTML
使用专门为XML/HTML设计的东西,例如。它已经是我们的一部分
您想要的XPath表达式将与以下内容类似:
//icon/text()
它的内容是:“从文档中的任何图标元素中选择文本,而不管其id或父元素如何。”r应该能够处理:
$html = file_get_html('http://www.example.com/');
foreach($html->find('icon') as $element)
echo $element->innertext . '<br>';
r应能够处理以下问题:
$html = file_get_html('http://www.example.com/');
foreach($html->find('icon') as $element)
echo $element->innertext . '<br>';
由于
不是有效的HTML标记,我假定您正在使用XML或其他标记语言。PHP有一个非常方便的扩展来处理XML:
<?php
$xml = simplexml_load_string('<?xml version="1.0"?><icon displayid="62115">inv_helmet_130</icon>');
echo (string)$xml[0];
?>
当然,确切的代码取决于您的确切字符串。正如所建议的那样,xpath搜索可以做到这一点。因为
不是有效的HTML标记,所以我假设您正在使用XML或其他标记语言。PHP有一个非常方便的扩展来处理XML:
<?php
$xml = simplexml_load_string('<?xml version="1.0"?><icon displayid="62115">inv_helmet_130</icon>');
echo (string)$xml[0];
?>
当然,确切的代码取决于您的确切字符串。正如所建议的,xpath搜索可以做到这一点。看起来您正在尝试解析XML。您考虑过XML解析器吗?不同吗?因此,如果不是“62115”,那么您就不想获取数据了?看起来您正在尝试解析XML。您考虑过XML解析器吗?不同吗?所以如果不是“62115”,那么你不想得到数据?