2013-05-01 4 views
0

Я интересно, если я могу получить значение соседнего узлаSimpleXML получить значение узла, который находится рядом с согласованным узлом

<item> 
    <title>Cell Phone Plans That Make You Go Hmmm</title> 
    <link>http://www.articlegeek.com/computers/telecommunication_articles/10574- cellphoneplanst.htm</link> 
    <description>Cell phone plans across the globe vary a great deal. Some say that cell phone plans in the US are more costly. However, there are some advantages to the cell phone plans in the US which may balance the difference.</description> 
</item> 

Это мой запрос, чтобы получить содержание описания, но я хочу ссылку, а что матчи описание.

$userIN = "cell"; 
    $nod2 = $xml->xpath 
    ("//description 
       [text( 
       [contains 
       (translate(.,'ABCDEFGHJIKLMNOPQRSTUVWXYZ', 'abcdefghjiklmnopqrstuvwxyz'), 
        '".$userIN."')]]"); 
+0

Когда вы начинаете, чтобы стать профессионалом с уже XPath, вы, вероятно, хотите узнать о осей следующий: [XPath осей - XPath (Schlitt & Westhoff)] (http://schlitt.info/opensource/blog/ 0704_xpath.html # xpath-axes) – hakre

+0

См. Http://zvon.org/xxl/XPathTutorial/Output/example15.html – michi

+0

Любопытно: что это за выражение xpath? ищет узел '', содержащий 'cell' и заменяющий все верхние и нижние регистры? Зачем это делать так? – michi

ответ

0

Я Заимствованный этот ответ из другой темы:

SimpleXML get next/prev node

Надеется, что это помогает.

$xmlData = new SimpleXMLElement(file_get_contents("data.xml")); 
$index = 0; 
foreach($xmlData->row as $item) { 
    if ($item->url == $_GET['id']) { 
     // show photo 
     $title = $item->title; 

     $prev = $xmlData->row[$index-1]; 
     $next = $xmlData->row[$index+1]; 
    } 
    $index++; 
} 
Смежные вопросы