![](/img/trans.png)
[英]How do I read the last N elements of an XML document using XmlReader?
[英]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 顯示帶有空格" "
的字符串,用於缺少元素,如繪圖。
我認為您可以嘗試與此示例非常接近的語法:
您可以使用以下方式測試節點的存在:
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.