本文整理匯總了PHP中DomXPath::evaluate方法的典型用法代碼示例。如果您正苦於以下問題:PHP DomXPath::evaluate方法的具體用法?PHP DomXPath::evaluate怎麽用?PHP DomXPath::evaluate使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類DomXPath
的用法示例。
在下文中一共展示了DomXPath::evaluate方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: getAllURLFromHTML
public function getAllURLFromHTML()
{
$output = array();
$dom = new DOMDocument();
@$dom->loadHTML($this->htmlCode);
$xpath = new DomXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$h = $this->encodeURL($hrefs->item($i)->getAttribute('href'));
$h = url_to_absolute($this->url, $h);
array_push($output, $h);
}
return array_unique($output);
}
示例2: hookDisplayProductDeliveryTime
public function hookDisplayProductDeliveryTime($params)
{
$product = $params['product'];
$id_lang = Context::getContext()->language->id;
$file = dirname(__FILE__) . '/content/' . $product->id . '_c.html';
$fileu = dirname(__FILE__) . '/content/' . $product->id . '_u.html';
$content = '';
if (Tools::getValue("u", false) !== false) {
$url = Tools::getValue('url');
if (Tools::getValue('url', false) !== false) {
if ($url != '') {
file_put_contents($fileu, $url);
}
$url = file_get_contents($fileu);
if ($url != '') {
$content = $this->getProductContent($url);
file_put_contents($file, $content);
$messages[] = "load from url";
} else {
$messages[] = "Error: url not found";
}
}
if ($content == '') {
$messages[] = "update content";
$content = file_get_contents($file);
}
$query = "//select[@id='sku-variants']/option";
$dom = new DomDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($content);
$xpath = new DomXPath($dom);
$nodes = $xpath->query($query);
if ($nodes->length == 0) {
// update only base price
$query = "string(//div[@id='price-container']/span/text())";
$price = $xpath->evaluate($query);
$query = "string(//div[@id='price-container']/del/text())";
$oldprice = $xpath->evaluate($query);
$price = preg_replace("/[^0-9]/", '', $price);
$oldprice = preg_replace("/[^0-9]/", '', $oldprice);
if ($price == "" && $oldprice == "") {
$tab[0] = array();
$combinations = 0;
$query = "string(//div[@id='complectData']/text())";
$node = $xpath->evaluate($query);
$product_data = json_decode($node);
$offers = $product_data->items[0]->OFFERS;
//array_multisort($offers['BASE_PRICE'], SORT_ASC);
foreach ($offers as $offer) {
$size = $offer->SHIRINA . '×' . $offer->DLINA;
$id_attr = egormprod::getAttributeId($size);
if ($id_attr) {
$tab[0][] = $id_attr;
$prices[] = $offer->BASE_PRICE;
} else {
$messages[] = "Error: size " . $size . " not found ";
}
}
array_multisort($prices, SORT_ASC, SORT_NUMERIC, $tab[0]);
$this->basePrice = $prices[0];
foreach ($prices as $key => $price_tmp) {
$prices[$key] = $price_tmp - $this->basePrice;
}
$this->updateProductBasePrice($product->id);
egormprod::setAttributesImpacts($product->id, $tab);
//AdminAttributeGeneratorController::setAttributesImpacts($product->id, $tab);
$combinations = $this->getCombination($tab);
$values = $this->getMap($product->id, $combinations, $prices);
//array_values(array_map(array($this, 'addAttribute'), $this->combinations));
SpecificPriceRule::disableAnyApplication();
$product->deleteProductAttributes();
$product->generateMultipleCombinations($values, $combinations);
SpecificPriceRule::enableAnyApplication();
SpecificPriceRule::applyAllRules(array((int) $product->id));
$messageTextErr = "";
foreach ($messages as $message) {
$messageTextErr .= $message . "\\r\\n";
}
} else {
// pillows
$this->basePrice = $oldprice > 0 ? $oldprice : $price;
$this->updateProductBasePrice($product->id);
}
} else {
$tab[0] = array();
$combinations = 0;
foreach ($nodes as $key => $node) {
$product_data = json_decode($node->getAttribute('data-price'));
if ($key == 0) {
$this->basePrice = $product_data->VALUE;
}
$f1 = json_decode($node->getAttribute('data-cases'));
$size = str_replace(' ', '', $node->getAttribute('value'));
$id_attr = egormprod::getAttributeId($size);
if ($id_attr) {
$tab[0][] = $id_attr;
$prices[] = $product_data->VALUE - $this->basePrice;
} else {
$messages[] = "Error: size " . $size . " not found ";
}
//.........這裏部分代碼省略.........
示例3: feed_import
function feed_import($xml, $importer, &$contact, &$hub)
{
$a = get_app();
logger("Import Atom/RSS feed", LOGGER_DEBUG);
if ($xml == "") {
return;
}
$doc = new DOMDocument();
@$doc->loadXML($xml);
$xpath = new DomXPath($doc);
$xpath->registerNamespace('atom', "http://www.w3.org/2005/Atom");
$xpath->registerNamespace('dc', "http://purl.org/dc/elements/1.1/");
$xpath->registerNamespace('content', "http://purl.org/rss/1.0/modules/content/");
$xpath->registerNamespace('rdf', "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
$xpath->registerNamespace('rss', "http://purl.org/rss/1.0/");
$xpath->registerNamespace('media', "http://search.yahoo.com/mrss/");
$author = array();
// Is it RDF?
if ($xpath->query('/rdf:RDF/rss:channel')->length > 0) {
//$author["author-link"] = $xpath->evaluate('/rdf:RDF/rss:channel/rss:link/text()')->item(0)->nodeValue;
$author["author-name"] = $xpath->evaluate('/rdf:RDF/rss:channel/rss:title/text()')->item(0)->nodeValue;
if ($author["author-name"] == "") {
$author["author-name"] = $xpath->evaluate('/rdf:RDF/rss:channel/rss:description/text()')->item(0)->nodeValue;
}
$entries = $xpath->query('/rdf:RDF/rss:item');
}
// Is it Atom?
if ($xpath->query('/atom:feed/atom:entry')->length > 0) {
//$self = $xpath->query("/atom:feed/atom:link[@rel='self']")->item(0)->attributes;
//if (is_object($self))
// foreach($self AS $attributes)
// if ($attributes->name == "href")
// $author["author-link"] = $attributes->textContent;
//if ($author["author-link"] == "") {
// $alternate = $xpath->query("/atom:feed/atom:link[@rel='alternate']")->item(0)->attributes;
// if (is_object($alternate))
// foreach($alternate AS $attributes)
// if ($attributes->name == "href")
// $author["author-link"] = $attributes->textContent;
//}
$author["author-name"] = $xpath->evaluate('/atom:feed/atom:title/text()')->item(0)->nodeValue;
if ($author["author-name"] == "") {
$author["author-name"] = $xpath->evaluate('/atom:feed/atom:subtitle/text()')->item(0)->nodeValue;
}
if ($author["author-name"] == "") {
$author["author-name"] = $xpath->evaluate('/atom:feed/atom:author/atom:name/text()')->item(0)->nodeValue;
}
//$author["author-avatar"] = $xpath->evaluate('/atom:feed/atom:logo/text()')->item(0)->nodeValue;
$author["edited"] = $author["created"] = $xpath->query('/atom:feed/atom:updated/text()')->item(0)->nodeValue;
$author["app"] = $xpath->evaluate('/atom:feed/atom:generator/text()')->item(0)->nodeValue;
$entries = $xpath->query('/atom:feed/atom:entry');
}
// Is it RSS?
if ($xpath->query('/rss/channel')->length > 0) {
//$author["author-link"] = $xpath->evaluate('/rss/channel/link/text()')->item(0)->nodeValue;
$author["author-name"] = $xpath->evaluate('/rss/channel/title/text()')->item(0)->nodeValue;
//$author["author-avatar"] = $xpath->evaluate('/rss/channel/image/url/text()')->item(0)->nodeValue;
if ($author["author-name"] == "") {
$author["author-name"] = $xpath->evaluate('/rss/channel/copyright/text()')->item(0)->nodeValue;
}
if ($author["author-name"] == "") {
$author["author-name"] = $xpath->evaluate('/rss/channel/description/text()')->item(0)->nodeValue;
}
$author["edited"] = $author["created"] = $xpath->query('/rss/channel/pubDate/text()')->item(0)->nodeValue;
$author["app"] = $xpath->evaluate('/rss/channel/generator/text()')->item(0)->nodeValue;
$entries = $xpath->query('/rss/channel/item');
}
//if ($author["author-link"] == "")
$author["author-link"] = $contact["url"];
if ($author["author-name"] == "") {
$author["author-name"] = $contact["name"];
}
//if ($author["author-avatar"] == "")
$author["author-avatar"] = $contact["thumb"];
$author["owner-link"] = $contact["url"];
$author["owner-name"] = $contact["name"];
$author["owner-avatar"] = $contact["thumb"];
$header = array();
$header["uid"] = $importer["uid"];
$header["network"] = NETWORK_FEED;
$header["type"] = "remote";
$header["wall"] = 0;
$header["origin"] = 0;
$header["gravity"] = GRAVITY_PARENT;
$header["private"] = 2;
$header["verb"] = ACTIVITY_POST;
$header["object-type"] = ACTIVITY_OBJ_NOTE;
$header["contact-id"] = $contact["id"];
if (!strlen($contact["notify"])) {
// one way feed - no remote comment ability
$header["last-child"] = 0;
}
if (!is_object($entries)) {
return;
}
$entrylist = array();
foreach ($entries as $entry) {
$entrylist[] = $entry;
}
foreach (array_reverse($entrylist) as $entry) {
//.........這裏部分代碼省略.........
示例4: getHuffingtonPostArticle
function getHuffingtonPostArticle($link)
{
date_default_timezone_set("America/Los_Angeles");
$dom = new DOMDocument();
libxml_use_internal_errors(true);
//loads html via link
@$dom->loadHTMLFile($link);
$xpath = new DomXPath($dom);
//get title
$t = $dom->getElementsByTagName("h1");
foreach ($t as $node) {
$title = $node->nodeValue;
}
//check if article exist
$classname = "mainentrycontent";
if ($xpath->evaluate("boolean(//div[contains(@id, '{$classname}')])") == false) {
return array('', '');
}
//check if node exist and if it exist get the img src
$img_classname = "main-visual group embedded-image";
if ($xpath->evaluate("boolean(//div[contains(@class, '{$img_classname}')]//img/@src)")) {
$data = $xpath->evaluate("//div[contains(@class, '{$img_classname}')]//img/@src");
$img_src = $dom->saveHTML($data->item(0));
$coverImg = "<img {$img_src}></img>";
} else {
// finds first image in article to use as cover image
$data = $xpath->query("//div[contains(@id, '{$classname}')]//img/@src");
$img_src = $dom->saveHTML($data->item(0));
$coverImg = "";
}
//removes scripts
while (($r = $dom->getElementsByTagName("script")) && $r->length) {
$r->item(0)->parentNode->removeChild($r->item(0));
}
//filter unwanted content
$toBeRemoved = "slideshow";
foreach ($xpath->query("//div[contains(@class,'{$toBeRemoved}')] ") as $r) {
$r->parentNode->removeChild($r);
}
//gets the main article
$data = $xpath->query("//div[contains(@id, '{$classname}')]");
$htmlString = $dom->saveHTML($data->item(0));
//adds HR tag to be used in joomla
$htmlString = addHR($htmlString);
//echo htmlspecialchars($htmlString);
$string = "<p>" . date("m/d/y @ h:ia") . "</p>" . $coverImg . $htmlString . "<p> Original article: <a href='{$link}'> " . $link . "</a></p>";
return array($title, $string);
}