我与将 XML 文档作为文档流提供服务的服务器建立了 TLS/TCP 连接。在任何时候,流可能具有:
- 部分文档(例如
<doc1>one
) - 完整的文件(例如
<doc1>one</doc1>
) - 完整文档和部分文档(例如
<doc1>one</doc1><doc2>
) - 多个文件等(例如
<doc1>one</doc1><doc2>two</doc2>
)
当我从流中读取数据时,我只是将读取数据附加到“未解析”缓冲区,然后尝试使用simplexml_load_string
. (1)没问题(失败),(2)没问题(工作),我的问题当然是,(3)和(4)因额外数据而失败。我真的没有办法对解析器说“只解析前 X 个字符”(或使用 substr),因为这需要实际解析 XML。当然,这些文档比示例要复杂得多。有没有办法:
- 使 simplexml_load_string 忽略额外的数据并让它返回一个文档以及它从字符串中消耗的字符数(这样我就可以进行缓冲区操作),或者
- 使用其他一些解析器/约定
谢谢。