xml parsing. do't know how...

msdn11

Новичок
xml parsing. do't know how...

Нужна помощь. Объясните на пальцах, как для человека вчера открывшего книгу на разделе хмл... Вопрос вот в чем:
я добрался до очередной ветки вот её структура-
<category id="1">
<title lang="ua">Новини</title>
<title lang="ru">Новости</title>
<title lang="en">News</title>
</category>

вот так я вывожу то что хранит lang.

$is = $it->children;
foreach($is as $cont){
echo "<b>".$cont->getAttribute("lang")."</b><br>";
}
А КАК МНЕ ДОБРАТСЯ ДО ЗНАЧЕНИЙ??? т.е. до (Новини,Новости, News).

Вот так выглядит $cont:

XML_Tree_Node Object ( [attributes] => [children] => Array ( ) [content] => [name] => [lineno] => 6 ) ua
XML_Tree_Node Object ( [attributes] => Array ( [lang] => ua ) [children] => Array ( ) [content] => Новини [name] => title [lineno] => 6 )
XML_Tree_Node Object ( [attributes] => [children] => Array ( ) [content] => [name] => [lineno] => 7 ) ru
XML_Tree_Node Object ( [attributes] => Array ( [lang] => ru ) [children] => Array ( ) [content] => Новости [name] => title [lineno] => 7 )
XML_Tree_Node Object ( [attributes] => [children] => Array ( ) [content] => [name] => [lineno] => 8 ) en
XML_Tree_Node Object ( [attributes] => Array ( [lang] => en ) [children] => Array ( ) [content] => News [name] => title [lineno] => 8 )

-~{}~ 23.11.05 12:09:

не верю что никто не знает..
 

BeGe

Вождь Апачей, блин (c)
Наверное надо читать документацию прежде чем задавать вопрос.
 

msdn11

Новичок
Наверное. Я её два дня мурижил... Только примеры в большинстве своём там примитивнее...
 

demon_mhm

Новичок
Re: xml parsing. do't know how...

вот так я вывожу то что хранит lang.
$is = $it->children;
foreach($is as $cont)
{
echo "<b>".$cont->getAttribute("lang")."</b><br>";
}
А КАК МНЕ ДОБРАТСЯ ДО ЗНАЧЕНИЙ??? т.е. до (Новини,Новости, News).
Может так?:
PHP:
$is = $it->child_nodes();
foreach ($is as $node)
 echo "<b>".$node->get_attribute("lang")."</b><br>";
echo "<b>".$node->get_content()."</b><br>";
В 4.4 работает прекрасно. Как в пятом - не знаю...
 

Pustota

Новичок
Народ, подскажите, как атрибут у ноды узнать. Есть XML вида:
Код:
...
<item>
<id>9003584</id> 
<name>Название</name>
<prop name="City">2729</prop> 
<prop name="Country">5732</prop> 
<prop name="number">173</prop> 
</item>
...
Нужно определить, что 'prop' со значением 2729 - это город, а не страна. Вот как бы это сделать? Просто без атрибутов ноды проверяю так (на основе примера с zend.com):
PHP:
foreach ($reader->documentElement->childNodes as $articles) { 
    if ($articles->nodeType == 1 && $articles->nodeName == "item") { 
        foreach ($articles->childNodes as $item) { 
            if ($item->nodeType == 1 && $item->nodeName == "id") { 
                $x_array[$i]["id"]=$item->textContent; 
            } 
            if ($item->nodeType == 1 && $item->nodeName == "name") { 
                $x_array[$i]["name"]=$item->textContent; 
            }
        } 
        $i++; 
    } 
}
Подскажите, как вытащить код страны и города? Просто в примере не показывали как атрибуты вытаскивать и проверять.
 

Pustota

Новичок
А по конкретней, на примерчике, кто-нибудь подскажет?
 

flash-boss

Новичок
если использовать xsl, то можно так:
PHP:
<xsl:for-each select="/category/title">
   <xsl:value-of select="@lang"/>
</xsl:for-each>
 
Сверху