Получение содержимого с помощью Xpath и DOM (php) - PullRequest
0 голосов
/ 28 декабря 2010
   $dom->load('2.xml');  
    $xpath = new DOMXPath($dom); 

    $questions = $xpath->query("questions/question"); 
    foreach($questions as $question)  
        {
         if ($question->textContent == "")
            { 
            $question->nodeValue = "{$current_time}";
             break;
            }
        }

<questions>
<question id="1">a<question>
<question id="2"><question>
</questions>

Приведенный выше код выполняет поиск узла с именем question, значение которого nodeValue пусто.Работает отлично.Однако я не могу понять, как получить значение атрибута текущего узла.например, 2 - это значение, которое я хочу получить.

Я хочу сделать это сразу после кода:

$question->nodeValue = "{$current_time}";

Вот мой xml-файл:

<?xml version="1.0" encoding="utf-8"?>
 <questions>
  <question id="1"></question>
  <question id="2"></question>
  <question id="3"></question>
 </questions>

Кто-нибудь может мне помочь с этим вопросом?Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 декабря 2010

Вы пробовали DOMElement::getAttribute?

$id = $question->getAttribute('id');
0 голосов
/ 28 декабря 2010

Я думаю, что вы должны дать пример выдержки из вашего XML-файла, чтобы мы могли легче выяснить, каковы ваши данные и что вы хотите с ними делать.

Кстати, вы пытались использовать SimpleXML вместо DOM - я думаю, что это намного проще в использовании.

...