我想遍历数据库中HTML字符串内的
标签。
示例:
$htmlString = "<p>1</p><p>2</p><p>3</p>";
我想遍历$htmlString
变量并按以下方式获取1,2,3:
1
2
3
我尝试了simplexml_load_string()
函数:
$x = "<p>1</p><p>2</p>";
$xml = simplexml_load_string($x);
foreach ($xml->p as $p) {
{
echo $p;
}
}
但是它给出了错误:
Warning: simplexml_load_string(): Entity: line 1: parser error : Extra content at the end of the document
Warning: simplexml_load_string(): <p>1</p><p>2</p>
Warning: simplexml_load_string(): ^
Notice: Trying to get property 'p' of non-object
Warning: Invalid argument supplied for foreach()
答案 0 :(得分:6)
您应该改用DOMDocument
,它将帮助您更轻松地解析HTML,这是示例代码:
<?php
$string = "<p>1</p><p>2</p>";
$domDocument = new DOMDocument();
$domDocument->loadHTML($string);
$paragraphElements = $domDocument->getElementsByTagName('p');
foreach ($paragraphElements as $p) {
var_dump($p->nodeValue);
}
输出:
string '1' (length=1)
string '2' (length=1)
答案 1 :(得分:1)
<p>
标签。代码:
<?php
$dom_document = new DOMDocument();
$dom_document->loadHTML("<p>1</p><p>2</p><p>3</p>");
$p_tags = $dom_document->getELementsByTagName("p");
for($i=0;$i<$p_tags->length;++$i){
echo $p_tags->item($i)->nodeValue,"<br/>";
}
答案 2 :(得分:-1)
为什么要使用简单的XML?有HTML DOM Parser
:
<?php
$x = "<p>1</p><p>2</p>";
$html = str_get_html($x);
$html->find('p');
echo $html; // Outputs 1 and 2
?>
答案 3 :(得分:-1)
major = open("major.txt", 'rb')
minor = open("minor.txt", 'rb')
major_list = []
minor_list = []
for m in major:
major_list.append(m)
for n in minor:
minor_list.append(n)
final = []
for i in minor_list:
for j in major_list
if minor_list[i] == major_list[j] and minor_list[i+1] <= major_list[j+1] and minor_list[i+2] >= major_list[j+2]:
final.append(i)
with open('output.txt', 'w') as f:
for item in final:
f.write("%s\n" % item)