2015-10-13 65 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