这是我的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#中的Description部分。我怎么能这样做请帮帮我???
感谢
答案 0 :(得分:1)
我试过这个并且它有效。这很简短,您可以轻松阅读说明。 假设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();
}
}
答案 1 :(得分: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相当 编程接口。
答案 2 :(得分:0)
使用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;
}
}