2015-10-13 107 views
0

我有以下XML文檔...爲簡單起見,我剛剛留下了一個「行」。XML讀取問題

<?xml version="1.0" encoding="UTF-8"?> 
<files> 
    <file type="INVOICES"> 
    <document>blah.pdf</document> 
    <line> 
     <field name="JobNo">321654</field> 
     <field name="Issues">1</field> 
     <field name="PageCount">200</field> 
     <field name="PrintRun">250</field> 
     <field name="Size">Small</field> 
    </line> 
    </file> 
</files> 

C#代碼:

static void Main(string[] args) 
{ 
    XmlDocument xmlDoc = new XmlDocument(); 
    xmlDoc.Load("input.xml"); 
    XmlNodeList itemNodes = xmlDoc.SelectNodes("//files/file/line"); 
    foreach (XmlNode itemNode in itemNodes) 
    { 
     XmlNode jobNo = itemNode.SelectSingleNode("field"); 

     if (jobNo != null) 
       Console.WriteLine(jobNo.InnerText); 
    } 
    Console.ReadKey(); 
} 

這遍歷每一行,並顯示然而,工號我想通過訪問它的名字JobNo<field name="JobNo">321654</field>訪問場...

jobNo = itemNode.SelectSingleNode("JobNo"); 

我知道我可以更改xml,但XML由客戶提供,所以這不是一個真正的選擇。

+0

所以,你想要什麼基本屬性名稱和值訪問特定領域元素?從xml讀出所有「JobNo」值(321654,....)? –

+0

好的,並且能夠以相同的方式訪問其他字段。即問題pagecount等 – user3755946

回答

1

可以通過提供諸如

XmlNode jobNo = itemNode.SelectSingleNode("field[@name='JobNo']"); 
+0

感謝這正是我正在尋找。 – user3755946