我试图从两个html标签之间获取文本,唯一的困难是标签可以与名称不同。
我会详细解释:
<icon displayid="62115">inv_helmet_130</icon>我得去拿
inv_helmet_130
但是标签的显示可能会有所不同,对如何解决这个问题有什么想法吗?也许有规律的解释,但我不擅长这些。
提前谢谢。
发布于 2010-02-15 16:28:52
简单HTML DOM分析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:28:43
不使用正则表达式来处理。
使用一些专门为XML/HTML设计的东西,比如XPath。它已经是PHP库的一部分了。
您想要的XPath表达式是这样的,
//icon/text()它的内容是:“从文档中的任何icon元素中选择文本,而不考虑其id或父元素。”
发布于 2010-02-15 16:37:51
由于<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搜索可以做到这一点。
https://stackoverflow.com/questions/2267302
复制相似问题