2012-02-01 4 views
0

Рассмотрите следующий XML-документ. Мне нужно получить значение «Колумби». Он всегда второй в строке, всегда с языком = 'sqi'. Есть ли способ сделать это без зацикливания в foreach? Причина, по которой я спрашиваю, состоит в том, что во многих случаях это происходит, и я думаю, что это просто замедляет работу системы, зацикливая так много. Его просто перевод xml, дающий разные значения для разных языков. Представьте себе возможности и циклы, которые мне нужно выполнить для каждого слова. Есть ли способ получить его с переменной, т.е. category-> text-> text ->? Language = sqi-> value или whatnot?PHP simpleload xml value

Заранее спасибо.

<Category id="274"> 
    <Texts> 
     <Text Language="def"> 
      <Value>Colombia</Value> 
     </Text> 
     <Text Language="sqi"> 
      <Value>Kolumbi</Value> 
     </Text> 
     <Text Language="en"> 
      <Value>Colombia</Value> 
     </Text> 
    </Texts> 
</Category> 

ответ

0

simplexml_load_string.

$xml_string = '<Category id="274"> 
    <Texts> 
    <Text Language="def"> 
     <Value>Colombia</Value> 
    </Text> 
    <Text Language="sqi"> 
     <Value>Kolumbi</Value> 
    </Text> 
    <Text Language="en"> 
     <Value>Colombia</Value> 
    </Text> 
    </Texts> 
</Category>'; 

$xml_array = simplexml_load_string($xml_string);

echo $xml_array->Texts->Text[1]->Value;

Codepad

Примечание: Как вы сказали здесь kolumbi всегда будет вторым.

+0

будет ли это работать с simplexml_load_file? –

+0

Ya, если у вас есть xml-файл, используйте это !! – Rikesh