我有一个HTML代码,我特别从下面给出的部分解决了这个html中的数据问题:
<li id=xyz>
John Johnson
<sup>1<sup>
","
</li>
我想提取约翰约翰逊&#34;超出此列表,没有别的。不知道怎么做。感谢。
答案 0 :(得分:1)
find('text')
就是您追求的目标。它返回源中找到的所有文本块。
根据您的示例,这是一个有效的代码:
// Test data
$input = <<<_DATA_
<li id=xyz>
John Johnson
<sup>1<sup>
","
</li>
_DATA_;
//Create a DOM object
$html = new simple_html_dom();
// Load HTML from a string
$html->load($input);
// >> Long answer
echo "Long answer:<br/>";
// Search all text nodes inside the target node
$search = $html->find('li#xyz text');
// Loop through each node and print it
foreach( $search as $i => $txt ) {
// No need to specify "->plaintext" since the content is already in plain text here
echo "$i => " . $txt->plaintext . "<br/>";
}
// >> Short answer
echo "<hr>";
echo "Short answer:<br/>";
// Specifying the index (0th here) returns the Nth element from the array containing all search results
echo $html->find('li#xyz text', 0)->plaintext;
// Clear DOM object
$html->clear();
unset($html);
<强>输出:强>
Long answer:
0 => John Johnson
1 => 1
2 => ","
3 =>
-------------------
Short answer:
John Johnson
有关详细信息,请查看 Manual
答案 1 :(得分:0)
将您需要的内容包含在内。 是比较好的选择
<li id='xyz'>
<span>John Johnson</span>
<sup>1<sup>
","
</li>
然后在你的javascript上,假设你正在使用jquery。
var contentToGrab = $('#xyz span').text();
// just verify you get the data correctly
console.log(contentToGrab);
答案 2 :(得分:0)
使用简单的javascript,你可以给一个类或Id到跨度并从javascript中获取
<span id="grabIt">John Johnson</span>
你的javascript:
Var john=document.getElementById("grabIt").innerText;