【发布时间】:2014-11-06 19:25:25
【问题描述】:
我有以下代码可以从大型 XML 文件流式传输。但是,会跳过一些 <Campaign/> 元素。这有什么原因吗?
public static IEnumerable<XElement> StreamItem(string uri)
{
using (var reader = XmlReader.Create(uri))
{
XElement campaign = null;
reader.MoveToContent();
// Loop through <Campaign /> elements
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "Campaign")
{
campaign = XNode.ReadFrom(reader) as XElement;
yield return campaign;
}
}
}
}
更新:
XML 文件格式正确,结构如下。
<CRoot>
<Campaign CampaignID="136">
<!-- other nested elements -->
</Campaign>
<Campaign CampaignID="137">
<!-- other nested elements -->
</Campaign>
<!-- etc -->
</CRoot>
【问题讨论】:
-
您是否有一些示例 XML 可用于显示行为?
-
它不会跳过您发布的 XML 的任何元素...您能发布一个示例吗?
-
@ThomasLevesque 我能够使用节点之间没有空格的 xml 重新创建。
-
是的,XML 节点之间没有空格。