首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PHP中获取复杂标记之间的文本

在PHP中获取复杂标记之间的文本
EN

Stack Overflow用户
提问于 2010-02-15 16:25:45
回答 3查看 2.1K关注 0票数 0

我试图从两个html标签之间获取文本,唯一的困难是标签可以与名称不同。

我会详细解释:

代码语言:javascript
复制
<icon displayid="62115">inv_helmet_130</icon>

我得去拿

inv_helmet_130

但是标签的显示可能会有所不同,对如何解决这个问题有什么想法吗?也许有规律的解释,但我不擅长这些。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-15 16:28:52

简单HTML DOM分析r应该能够处理这个问题:

代码语言:javascript
复制
$html = file_get_html('http://www.example.com/');

foreach($html->find('icon') as $element) 
       echo $element->innertext . '<br>';

你可以这样挑出来:

代码语言:javascript
复制
echo $html->find('icon', 0)->innertext; // get me the first
票数 3
EN

Stack Overflow用户

发布于 2010-02-15 16:28:43

使用正则表达式来处理。

使用一些专门为XML/HTML设计的东西,比如XPath。它已经是PHP库的一部分了。

您想要的XPath表达式是这样的,

代码语言:javascript
复制
//icon/text()

它的内容是:“从文档中的任何icon元素中选择文本,而不考虑其id或父元素。”

票数 1
EN

Stack Overflow用户

发布于 2010-02-15 16:37:51

由于<icon>不是一个有效的HTML,所以我猜想您正在使用XML或其他一些标记语言。PHP有一个非常方便的扩展来处理XML:

代码语言:javascript
复制
<?php

$xml = simplexml_load_string('<?xml version="1.0"?><icon displayid="62115">inv_helmet_130</icon>');
echo (string)$xml[0];

?>

当然,确切的代码取决于您的确切字符串。正如建议的那样,xpath搜索可以做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2267302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档