我想在PSR-7响应中解析巨大的xml。默认XmlReader看起来不错,但它似乎不能使用PSR-7 StreamInterface。
我的XML如下所示:
<root>
<item>
...
</item>
<item>
...
</item>
</root>我想使用类似这样的东西:
$client = new GuzzleHttp\Client();
$response = $client->request('GET', 'http://example.com/large.xml');
$streamer = new MyXmlStreamer($response->getBody());
while ($item = $streamer->getNode()) {
var_dump($item); // where $item would be item outerXml
}有什么办法可以做到这一点吗?
发布于 2019-07-28 17:12:42
您可以使用xml-string-streamer
$client = new GuzzleHttp\Client();
$response = $client->request('GET', 'http://example.com/large.xml');
$stream = $response->getBody();
// Construct the default parser (StringWalker)
$parser = new Parser\StringWalker();
// Create the streamer
$streamer = new XmlStringStreamer($parser, $stream);
// Iterate through nodes
while ($node = $streamer->getNode()) {
$simpleXmlNode = simplexml_load_string($node);
//echo (string)$simpleXmlNode->firstName;
}https://stackoverflow.com/questions/57239300
复制相似问题