如何解析HTML/XML并从中提取信息?
我需要匹配所有这些开始标记:
<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)
但不是这些:
<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)
我想出了这个,并希望确保我做对了.我只抓住了a-z.
<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)
我相信它说:
/,然后我有这个权利吗?更重要的是,你怎么看?
我希望在此示例中将SRC属性转换为变量:
<img border="0" src="/images/image.jpg" alt="Image" width="100" height="100" />
Run Code Online (Sandbox Code Playgroud)
所以例如 - 我想得到一个变量$foo = "/images/image.jpg".重要!src属性将是动态的,因此不能进行硬编码.有没有快速简便的方法来做到这一点?
谢谢!
编辑:图像将是一个巨大的字符串的一部分,基本上是新闻故事的内容.所以图像只是其中的一部分.
EDIT2:这个字符串中会有更多的图像,我只想获得第一个的src.这可能吗?
使用PHP,我如何从$ foo中隔离src属性的内容?我正在寻找的最终结果只会给我" http://example.com/img/image.jpg "
$foo = '<img class="foo bar test" title="test image" src="http://example.com/img/image.jpg" alt="test image" width="100" height="100" />';
Run Code Online (Sandbox Code Playgroud) 目前我使用.Net WebBrowser.Document.Images()来做到这一点.它需要Webrowser加载文档.它很乱,占用资源.
根据这个问题, XPath优于正则表达式.
任何人都知道如何在C#中做到这一点?
我想知道如何实现这一目标.
假设:有很多包含表格,div,图像等的html代码.
问题:如何获得所有出现的匹配.更重要的是,具体来说,我如何获得img标记源(src =?).
例:
<img src="http://example.com/g.jpg" alt="" />
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如何打印http://example.com/g.jpg.我想假设在我提到的html代码中还有其他标签,可能还有多个图像.是否有可能在html代码中拥有所有图像源的数组?
我知道这可以通过正则表达式实现,但我无法理解它.
任何帮助是极大的赞赏.
我想在Groovy中解析一个网页,并用它提取所有href链接和相关文本.
如果页面包含以下链接:
<a href="http://www.google.com">Google</a><br />
<a href="http://www.apple.com">Apple</a>
Run Code Online (Sandbox Code Playgroud)
输出将是:
Google, http://www.google.com<br />
Apple, http://www.apple.com
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个Groovy的答案.AKA.简单的方法!
我正在尝试运行preg_match从文章中的第一个IMG标记中提取SRC属性(在这种情况下,存储在$ row-> introtext中).
preg_match('/\< *[img][^\>]*[src] *= *[\"\']{0,1}([^\"\']*)/i', $row->introtext, $matches);
Run Code Online (Sandbox Code Playgroud)
而不是得到类似的东西
images/stories/otakuzoku1.jpg
Run Code Online (Sandbox Code Playgroud)
从
<img src="images/stories/otakuzoku1.jpg" border="0" alt="Inside Otakuzoku's store" />
Run Code Online (Sandbox Code Playgroud)
我得到了
0
Run Code Online (Sandbox Code Playgroud)
正则表达式应该是正确的,但我不知道为什么它似乎匹配border属性而不是src属性.
或者,如果您有耐心阅读这一点而不直接跳到回复字段并输入"使用HTML/XML解析器",那么可以推荐一个很好的教程,因为我很难找到一个适用于PHP 4.
PHP 4.4.7
我的工作中,我要显示随机任意给定的结果数猜想的一个项目,我有六个<html>形象的标签,我只想随机显示3次,以我们每次刷新页面,它显示随机任意三个图像出任何六个
我正在使用html代码作为示例
<html>
<body>
<div class=1>
<a href="http://example1.com">
<div>
<img src="image1.jpg">
</div>
</a>
</div>
<div class=1>
<a href="http://example2.com">
<div>
<img src="image2.jpg">
</div>
</a>
</div>
<div class=1>
<a href="http://example3.com">
<div>
<img src="image3.jpg">
</div>
</a>
</div>
<div class=1>
<a href="http://example4.com">
<div>
<img src="image4.jpg">
</div>
</a>
</div>
<div class=1>
<a href="http://example5.com">
<div>
<img src="image5.jpg">
</div>
</a>
</div>
<div class=1>
<a href="http://example6.com">
<div>
<img src="image6.jpg">
</div>
</a>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在这六张图片中我只想通过php显示任何三张图片.有可能,我该怎么做?希望你能找到更好的解决方案.此外,我想显示其他标签,如链接在图像和一些更多的标签,以便我可以通过CSS更好地显示图像,所以我认为它可以通过switch语句更容易完成
嗨,
我找到了从字符串中获取第一张图片的解决方案:
preg_match('~<img[^>]*src\s?=\s?[\'"]([^\'"]*)~i',$string, $matches);
Run Code Online (Sandbox Code Playgroud)
但我无法设法从字符串中获取所有图像.
还有一件事......如果图像包含替代文本(alt属性)如何获取它并保存到另一个变量?
在此先感谢,
Ilija