我正在使用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个条目(Part's),并非所有条目(Part)都具有上述所有元素。
我的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的条目(Part)中时,我如何处理向Arraylist添加元素?
更新:
我修改了代码只是一个输出,这是预期的输出:
1
10个
1
“”
我希望第2部分的输出显示带有空格" "
的字符串,用于缺少像Drawing这样的元素。
答案 0 :(得分:2)
我认为您可以尝试接近此示例的语法vwery:
您可以使用以下内容测试节点的存在:
XDocument document = XDocument.Load("file.xml");
foreach (XElement item in document.Descendants("Part"))
{
if (item.Element("Quantity") == null)
al.add(string.Empty);
else
al.add(item.Element("Quantity").value);
}