2015-10-12 91 views
0

這是我的xml文件如何閱讀XML文件在C#中

<problem> 
<sct:fsn>Myocardial infarction (disorder)</sct:fsn>  
<sct:code>22298006</sct:code> 
<sct:description>Heart attack</sct:description> 
<sct:description>Infarction of heart</sct:description> 
<sct:description>MI - Myocardial infarction</sct:description> 
<sct:description>Myocardial infarct</sct:description> 
<sct:description>Cardiac infarction</sct:description> 
</problem> 

我想讀在C#描述部分。我該怎麼做請幫助我?

感謝

+0

你可以使用XmlTextReader對象來讀取c#中的xml文件。 – pedram

回答

0

嘗試這樣的:

foreach(XmlNode node in doc.DocumentElement.ChildNodes){ 
    string text = node.InnerText; 
} 

可以讀取屬性作爲

string text = node.Attributes["sct:description"].InnerText; 

您也可以參考:LINQ to XML

的LINQ to XML提供了一個內存中的XML編程 利用.NET語言集成查詢(LINQ)框架。 LINQ to XML使用最新的.NET Framework語言功能,並且與更新的,重新設計的文檔對象模型(DOM)XML 編程接口相比,它是 。

+0

你可以給我完整的代碼讀取XML文件,請... –

+0

@SarfarazAli: - 爲此,你需要顯示你的努力,你已經嘗試過。 –

+0

@ rahul Tripathi: - 謝謝 –

0

讀取XML用的XmlReader:

XmlReader xReader = XmlReader.Create(new StringReader(xmlNode)); 
while (xReader.Read()) 
{ 
    switch (xReader.NodeType) 
    { 
     case XmlNodeType.Element: 
      listBox1.Items.Add("<" + xReader.Name + ">"); 
      break; 
     case XmlNodeType.Text: 
      listBox1.Items.Add(xReader.Value); 
      break; 
     case XmlNodeType.EndElement: 
      listBox1.Items.Add(""); 
      break; 
    } 
} 

讀取XML與XmlTextReader的:

XmlTextReader xmlReader = new XmlTextReader("d:\\product.xml"); 
while (xmlReader.Read()) 
    { 
switch (xmlReader.NodeType) 
{ 
    case XmlNodeType.Element: 
     listBox1.Items.Add("<" + xmlReader.Name + ">"); 
     break; 
    case XmlNodeType.Text: 
     listBox1.Items.Add(xmlReader.Value); 
     break; 
    case XmlNodeType.EndElement: 
     listBox1.Items.Add(""); 
     break; 
} 
} 
1

我想這和它的作品。這很簡短,您可以輕鬆閱讀說明。 假設test.xml是您想要讀取的文件。 val將包含解鎖的值。請注意,由於您在xml元素名稱中使用冒號,因此在sct的XML文件中將命名空間關聯起來非常重要。

XElement RootNode = System.Xml.Linq.XElement.Load("d:/test.xml"); 
foreach (XElement child in RootNode.Elements()) 
{ 
    if (child.Name.LocalName.Equals("description")) 
    { 
     string val = child.Value.ToString(); 
    } 
}