我有一个问题让我摸不着头脑,我相信这是一个简单的解决方案,但对于我的生活,我找不到它。
我正在尝试使用 PHP 中的 XMLReader 计算 XML 文件的节点。直到现在还没有什么新鲜事,这里有很多关于如何做到这一点的例子。问题是所有示例都是从表示整个 XML 文件的字符串 (simplexml_load_string) 加载的。这很好用。但是,如果我尝试从文件加载,我会得到“预期的开始标签,‘<’ 未找到” SimpleXML 的异常。
这是代码:
$xml = simplexml_load_file($fname); //$fname is a valid xml file, it loads fine
$elem = new SimpleXMLElement($xml); //it chokes on this line
Run Code Online (Sandbox Code Playgroud)
从字符串加载它虽然有效,但我确实想从文件加载它:
$xml = simplexml_load_string($xmlstring); //$xmlstring is the content of the same xml file
Run Code Online (Sandbox Code Playgroud)
我错过了什么?谢谢你的帮助。
simplexml_load_file将 XML 文件解释为 xml 对象,因此 $xml 本身就是一个 xml 对象,访问它的元素只需使用 $xml 对象属性,无需创建新对象 $elm
simplexml_load_file 返回一个 SimpleXMLElement 类的对象,其属性包含 XML 文档中保存的数据,失败时返回 FALSE。
http://php.net/manual/en/function.simplexml-load-file.php