1
我有一個服務器的TLS/TCP連接,它將XML文檔作爲文檔流提供服務。在任何時候,該流可以具有:使用simplexml_load_string解析XML文檔STREAM
- 的局部文檔(例如
<doc1>one
) - 一個完整的文檔(例如
<doc1>one</doc1>
) - 一個完整的文檔和局部文檔(例如
<doc1>one</doc1><doc2>
) - 多個文件等(例如
<doc1>one</doc1><doc2>two</doc2>
)
當我從流中讀取數據時,我只是將讀取的數據追加到「unparsed」緩衝區,然後嘗試解析buff呃與simplexml_load_string
。 (1)是好的(失敗),和(2)是好的(工作),我的問題當然是(3)和(4)失敗並帶有額外的數據。我實際上沒有辦法對解析器說「只解析第一個X字符」(或使用substr),因爲這需要實際解析XML。這些文件當然比例子複雜得多。有沒有什麼辦法:
- 化妝simplexml_load_string忽略額外的數據,並將它返回一個文檔,並將其從字符串所消耗的字符數(所以我可以做緩衝處理),或
- 使用一些其他的解析器/約定
謝謝。
你可能想考慮使用一個專門用於流的解析器,如[XmlReader ](http://php.net/manual/en/book.xmlreader.php)或[Xml Parser](http://php.net/manual/en/book.xml.php)。 –