在PHP中的复杂标签之间获取文本
我试图从2个html标签中获取文本,只是难度在于标签可能与名称不同。在PHP中的复杂标签之间获取文本
我会解释成细节:
<icon displayid="62115">inv_helmet_130</icon>
我必须得到
inv_helmet_130
但displayid标签可以不同的,对任何想法如何解决这个问题?也许是经常爆发,但我不擅长这些。
在此先感谢。
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
谢谢你做到了! – 2010-02-15 16:42:14
谢谢。这工作。 :) – apis17 2011-06-13 05:05:17
不要使用正则表达式来处理HTML。
改用专门为XML/HTML设计的东西,如XPath。它已经是PHP's libraries的一部分。
你想是要沿着这个东西线的XPath表达式,
//icon/text()
其内容,从“选择任何icon
元素的文档中的文本,而不管其ID或父母。”
谢谢,我想我可以用它来解决这个问题。 – 2010-02-15 16:31:41
由于<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搜索可以做到这一点。
它看起来像你试图解析XML。你有没有考虑过XML解析器? – 2010-02-15 16:27:24
不同?所以如果它不是“62115”,那么你不想获取数据? – ghostdog74 2010-02-15 16:28:51