我正在尝试将XML字符串转换为数组。 SimpleXmlIterator仅接受文件的路径作为参数。有什么方法可以传递字符串吗?
答案 0 :(得分:2)
根据文件:
SimpleXMLIterator::__construct ( string $data [, int $options [, bool $data_is_url [, string $ns [, bool $is_prefix ]]]] )
因此,这会加载一个字符串:
$it = new SimpleXMLIterator ($xml_string);
这会加载一个文件:
$it = new SimpleXMLIterator ($xml_filename, 0, true);
答案 1 :(得分:1)
SimpleXMLIterator::__construct (
string $data [,
int $options [,
bool $data_is_url [,
string $ns [,
bool $is_prefix ]]]] )
所以您应该可以通过更改$data_is_url
来传递字符串和文件:
默认情况下,data_is_url为FALSE。使用TRUE指定数据是XML文档的路径或URL而不是字符串数据。
另请参阅first user-contributed comment in the PHP Manual for SimpleXmlIterator
for an example how to turn XML into an array。该示例使用了一个文件,但您可以毫无疑问地根据您的需求进行调整。
答案 2 :(得分:1)
你在哪里看到的?默认情况下,SimpleXMLIterator
接受一个字符串作为constructor的XML数据...您可以通过将第三个参数设置为true
在第一个参数中传递一个文件名,但默认为{ {1}} ...
并且false
有一个可选的asXml()
参数,但如果您愿意,可以将其关闭,并且它会返回一个字符串......