Articles of xpath

PHP simplexml xpath ищет значение в ELEMENT, содержащем текст с разделителями табуляции?

Как сделать xml-поиск PHP simplexml для текстового значения в элементе ELEMENT с разделителями табуляции и возвращать текст из этого же элемента в другом смещении, от которого смещается текст поиска? Допустим, я хочу найти элемент DATA, содержащий значение «2» и вернуть Академию LongValue. Документ xml находится в следующем формате <METADATA Resource="Property" Lookup="Area"> <COLUMNS>->fieldname *(->fieldname)-></COLUMNS> *(<DATA>->fielddata *(->fielddata)-></DATA>) […]

Симплекс XPath странности

Я пишу скрипт, который читает и обрабатывает документ KML (xml). Ниже приведен фрагмент документа, который я читаю: <?xml version="1.0" encoding="UTF-8"?> <!– Generated by Feature Manipulation Engine 2009 (Build 5658) –> <kml xmlns="http://earth.google.com/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> <Document> <name>South Australia</name> <visibility>1</visibility> <description><![CDATA[Statistical Local Area 2008]]></description> <Folder id="kml_ft_SA_SLA08"> <name>SA_SLA08</name> <Placemark id="kml_1"> <name>Mitcham (C) – West</name> <Style> <!– style info blah […]

Как получить значение атрибута с пространством имен

Я хотел бы получить содержимое атрибута xsi: schemaLocation . Он отлично работает с getElementsByTagName в php (и foreach after), но он уродлив, не так ли? Как получить тот же контент с помощью простого запроса Xpath? Вот краткий пример содержимого xml: <?xml version="1.0" encoding="utf-8"?> <gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0" creator="blabla" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.groundspeak.com/cache/1/0/1 http://www.groundspeak.com/cache/1/0/1/cache.xsd" xmlns="http://www.topografix.com/GPX/1/0"> … </gpx> […]

Извлечение значений узла с помощью XPath

Существует раздел amazon.com, из которого я хочу извлечь данные (только значение узла, а не ссылка) для каждого элемента. Значение, которое я ищу, находится внутри и <span class="narrowValue"> <ul data-typeid="n" id="ref_1000"> <li style="margin-left: -18px"> <a href="/s/ref=sr_ex_n_0?rh=i%3Aaps%2Ck%3Ahow+to+grow+tomatoes&amp;sort=salesrank&amp;keywords=how+to+grow+tomatoes&amp;ie=UTF8&amp;qid=1327603358"> <span class="expand">Any Department</span> </a> </li> <li style="margin-left: 8px"> <strong>Books</strong> </li> <li style="margin-left: 6px"> <a href="/s/ref=sr_nr_n_0?rh=k%3Ahow+to+grow+tomatoes%2Cn%3A283155%2Cp_n_feature_browse-bin%3A618073011%2Cn%3A%211000%2Cn%3A48&amp;bbn=1000&amp;sort=salesrank&amp;keywords=how+to+grow+tomatoes&amp;ie=UTF8&amp;qid=1327603358&amp;rnid=1000"> <span class="refinementLink">Crafts, Hobbies & Home</span><span […]

XPath и PHP: ничего не работает должным образом

Вот мой код: $XML = <<<XML <items> <item id="123"> <name>Item 1</name> </item> <item id="456"> <name>Item 2</name> </item> <item id="789"> <name>Item 3</name> </item> </items> XML; $objSimpleXML = new SimpleXMLElement($XML); print_r($objSimpleXML->xpath('./item[1]')); print "- – – – – – -\n"; print_r($objSimpleXML->xpath('./item[2][@id]')); print "- – – – – – -\n"; print_r($objSimpleXML->xpath('./item[1]/name')); Ничего особенного: я пытаюсь извлечь некоторые данные через […]

добавление переменной php в Xpath

Мне просто нужно добавить переменную в xpath. $target = $xml->xpath('//gig[@id=$1]'); но мне это тоже нужно, но что-то вроде $target = $xml->xpath("//gig[@id=$" $change . "]"); Это возможно ? Если это может помочь кто-то?

Ссылки на XML-ссылки Xpath

Я использую этот пример для получения ссылок с веб-сайта: http://www.merchantos.com/makebeta/php/scraping-links-with-php/ $xpath = new DOMXPath($dom); $hrefs = $xpath->evaluate("/html/body//a"); for ($i = 0; $i < $hrefs->length; $i++) { $href = $hrefs->item($i); var_dump($href); $url = $href->getAttribute('href'); echo "<br />Link stored: $url"; } Это работает хорошо; получение всех ссылок; но я не могу получить фактическое «название» ссылки; например, если […]

Как предотвратить добавление doctype в HTML?

Я работаю над этими tid-up-messy-html тегами с DOM, но теперь я понимаю большую проблему, $content = '<p><a href="#">this is a link</a></p>'; function tidy_html($content,$allowable_tags = null, $span_regex = null) { $dom = new DOMDocument(); $dom->loadHTML($content); // other codes return $dom->saveHTML(); } echo tidy_html($content); Он выведет всю DOM, <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html><body><p><a […]

XPATH – возвращает одно значение вместо массива php

Я использую Xpath в PHP – я знаю, что мой запрос вернет либо 0, либо 1 результат. Если 1 результат возвращен, я не хочу, чтобы он был массивом, и это то, что возвращается прямо сейчас. Я просто хочу значение без необходимости доступа к элементу [0] результата и отбрасыванию в строку. Это возможно?

Получить узел-предок с PHP и xpath

Пожалуйста, простите, если следующее немного запутано, я убиваю себя, пытаясь это выработать. Это кусок XML (экспортированный с большого сайта), который я использую для создания дерева категорий для мини-CMS. Как только у меня есть значение и имя узла, что не представляет проблемы, мне также нужно получить «родительский» каждый узел, то есть узел, предшествующий ему, который находится […]