【发布时间】:2011-09-25 23:10:40
【问题描述】:
我正在使用 XmlReader 读取 xml 文件。我无法控制 xml 文件,有时 xml 文件会跳过如下所示的元素。
<Part xsi:type="Part1">
<Quantity>1</Quantity>
<Drawing>10</Drawing>
</Part>
<Part xsi:type="Part2">
<Quantity>1</Quantity>
</Part>
图纸和重量在第一个条目(第 1 部分)中,但不在第二个条目(第 2 部分)中。 此 xml 有 1300 个条目(部分),并非所有条目(部分)都具有上述所有元素。
我的 XmlReader 代码如下。
private void Select(string elem, ArrayList al)
{
using (XmlReader reader = new XmlTextReader(xml))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == elem && reader.IsStartElement())
{
string output = reader.ReadString();
Console.WriteLine(output);
}}}}}
当元素不在 xml 中的条目(部分)中时,我将如何处理向 Arraylist 添加元素?
更新:
我将代码修改为只是一个输出,这是预期的输出:
1
10
1
" "
我希望第 2 部分的输出显示带有空格的字符串 " " 用于缺少元素,例如绘图。
【问题讨论】:
-
你有使用XmlReader吗? LINQ to XML 会简单得多...
-
我不必,我从来没有使用过 LINQ to XML,这就是 XmlReader 的主要原因。如果允许我将跳过的元素添加到 ArrayList,我会很乐意使用 LINQ to XML。
-
我想我们都对你在这里想要完成的事情感到困惑。你能告诉我们你想要的输出吗?我认为可能有更好的方法来实现你想要的。
-
请告诉我们什么是“创造你的输出”
-
你为什么使用
ArrayList?自 .NET 2.0 以来,它已被弃用。