Как загрузить XML-файл в php, чтобы я мог использовать xpath на нем? - PullRequest
1 голос
/ 17 марта 2012

У меня проблема с php. Если я реализую этот код ниже, ничего не произойдет.

$filename = "/opt/olat/olatdata/bcroot/course/85235053647606/runstructure.xml";
if (file_exists($filename)) {
 $xml = simplexml_load_file($filename, 'SimpleXMLElement', LIBXML_NOCDATA);
 // $xpath = new DOMXPath($filename);
}
$doc = new DOMDocument();
$doc->loadXML($xml);
$xpath = new DOMXpath($doc);

$res = $xpath->query('/org.olat.course.Structure/rootNode/children/org.olat.course.nodes.STCourseNode/shortTitle');

foreach ($res as $entry) {
    echo "{$entry->nodeValue}<br/>";
}

Если я изменю содержимое $ xml в содержимом с помощьюсодержимое $ filename

$xml = '<org.olat.course.Structure><rootNode class="org.olat.course.nodes.STCourseNode"> ... ';

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

echo $ Course_name = $ xml-> rootNode-> longTitle;

1 Ответ

2 голосов
/ 17 марта 2012

loadXML принимает строку в качестве ввода, а не возвращаемое значение simplexml_load_file.Просто используйте file_get_contents, чтобы получить (полное) содержимое файла в виде string

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...