我的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/>"; }
如果我使用$ filename
的内容更改内容中$ xml的内容$xml = '<org.olat.course.Structure><rootNode class="org.olat.course.nodes.STCourseNode"> ... ';
然后它工作,所以我认为加载xml文件的方法有问题, 我也尝试将xml文件作为Domdocument加载,但它也不会工作。 在这两种情况下,如果我通过xml收集xml数据,它确实有效 例如,这工作
echo $ Course_name = $ xml-&gt; rootNode-&gt; longTitle;
答案 0 :(得分:2)
loadXML
将字符串作为输入,而不是simplexml_load_file
的返回值。只需使用file_get_contents
将文件的(完整)内容作为 string