我正在尝试从两个html标签之间获取文本,但难点在于标签可能与名称不同。
我会详细解释:
<icon displayid="62115">inv_helmet_130</icon>
我必须得到
inv_helmet_130
但是标签的 displayid 可能有所不同,有关如何解决此问题的任何想法?也许是经常的爆发,但我不擅长那些。
提前致谢。
答案 0 :(得分:3)
Simple HTML DOM Parse r应该能够处理:
$html = file_get_html('http://www.example.com/');
foreach($html->find('icon') as $element)
echo $element->innertext . '<br>';
你可以像这样单挑出来:
echo $html->find('icon', 0)->innertext; // get me the first
答案 1 :(得分:1)
不要使用正则表达式来处理HTML。
使用专为XML / HTML设计的内容,例如XPath。它已经是PHP's libraries的一部分。
你想要的XPath表达式将会是这样的,
//icon/text()
其中显示“从文档中的任何icon
元素中选择文本,无论其ID或父级如何。”
答案 2 :(得分:0)
由于<icon>
不是有效的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搜索可以做到这一点。