簡體   English   中英

如何為 XmlReader 的 xml 中的跳過元素添加空格?

[英]How do I add blanks for skipped elements in an xml for XmlReader?

我正在使用 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 添加元素?

更新:我將代碼修改為 output,這是預期的 output:
1
10
1
" "

我希望第 2 部分的 output 顯示帶有空格" "的字符串,用於缺少元素,如繪圖。

我認為您可以嘗試與此示例非常接近的語法:

通過 LINQ 讀取 XML

您可以使用以下方式測試節點的存在:

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);


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM