我能夠使用DOM解析另一個頁面。我能夠檢索hrefs,imgs等等使用php解析html
上。我應該如何解析這個?
<span class="abc up" id="price">+9395</span>
我能夠使用DOM解析另一個頁面。我能夠檢索hrefs,imgs等等使用php解析html
上。我應該如何解析這個?
<span class="abc up" id="price">+9395</span>
假設你有一個DOMElement,可以通過訪問nodeValue屬性中獲得的價值...下例:
<?php
$doc = new DOMDocument();
$doc->loadHTML('<span class="abc up" id="price">+9395</span> ');
$elements = $doc->getElementsByTagName('span');
echo $elements->item(0)->nodeValue;
我以爲你已經找到已節點......正如阿利斯泰爾說你可以使用XPath。
http://de.php.net/manual/en/domxpath.query.php
$xpath = new DOMXPath($doc);
$spans = $xpath->query('//span[@id="price"]');
echo $spans->item(0)->nodeValue;
要確定的XPath您可以使用各種現代瀏覽器並尋找一個獨特的路徑所需的元素。
或者你可以使用XPath也做到這一點:
<?php
$html = '<span class="abc up" id="price">+9395</span>';
$document = new DOMDocument();
$document->loadHTML($html);
$xpath = new DOMXPath($document);
$results = $xpath->query('//span');
foreach($results as $result) {
echo $result->nodeValue . PHP_EOL;
}
,將顯示爲span元素的所有值。如果你想按id搜索,你可以使用// span [@ id =「price」]和class // [span class =「abc up」]
對於HTML(或XML)的非平凡解析, ,你需要的東西,可以智能地遍歷DOM,像DOM文檔或QueryPath,或XPath,等等。但是,很瑣碎的情況下,這似乎是一個可以簡單地使用strip_tags
:
echo strip_tags('<span class="abc up" id="price">+9395</span>');
產生+9395
。
//turn the html into a dom object:
$html = str_get_html('<span class="abc up" id="price">+9395</span>');
//find the first element with id "price":
$node->find('#price', 0);
//grab its inner text:
echo $node->innertext;
它使用CSS3樣式選擇,這是很好的
你想擺脫它呢? – Jacob 2011-02-16 05:35:30
the vlaue:+9395 – ineedhelp 2011-02-16 05:36:22
它是在一個HTML文檔中,還是由它自己?我們需要看一個案例。你是通過班級還是身份證來識別的? – Jonah 2011-02-16 05:38:02