我通过 http 响应流接收 xml 的“ block ”。每个 block 都是一个完整的迷你 xml 层次结构,例如:
<chunk1>
<id>1</id>
<data>blah blah-blah</data>
</chunk1>
...
(30 seconds later)
...
<chunk2>
<id>2</id>
<data>blah blah-blah</data>
</chunk2>
...
(30 seconds later)
...
<chunk1>
<id>3</id>
<data>blah blah-blah</data>
</chunk1>
在 C# 中将每个“ block ”读入 XElement 以进行进一步处理的最佳方法是什么?每个 block 可能有不同的根元素。
我看到了对 similar questions 的回复。然而,响应似乎并不是最佳的,因为它们涉及处理每个节点。我只想读取流,直到到达与打开 block 节点相对应的关闭节点,将整个 block 送入 XElement,调用方法来处理它,然后等待下一个 block 。
最佳答案
这就是我一直在寻找的:
XmlReader reader = XmlReader.Create(stream, new XmlReaderSettings() { ConformanceLevel = ConformanceLevel.Fragment });
while (reader.Read())
{
using (XmlReader subTreeReader = reader.ReadSubtree())
{
XElement xmlData = XElement.Load(subTreeReader);
Process(xmlData);
}
}
关于c# - 如何通过 HTTP 将连续的 XML 流读入 XElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25631003/