繁体   English   中英

如何在C#中读取xml文件

[英]How to Read xml file In C#

这是我的xml文件

<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#中的“描述”部分。 我该怎么做请帮助我???

谢谢

我试过了,它起作用。 这很简短,您可以轻松阅读说明。 假设test.xml是您要读取的文件。 val将包含解密的值。 请注意,由于您在xml元素名称中使用冒号,因此必须将XML文件中的命名空间与sct相关联。

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

尝试这样:

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编程接口进行比较。

使用XmlReader读取Xml:

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

使用XmlTextReader读取XML:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM