这个问题很简单,但我已经纠结了一个小时了,这真的让我很沮丧。我的XML看起来像这样:
<TimelineInfo>
<PreTrialEd>Not Started</PreTrialEd>
<Ambassador>Problem</Ambassador>
<PsychEval>Completed</PsychEval>
</TimelineInfo>我想要做的就是使用C#来获取存储在<Ambassador>和</Ambassador>之间的字符串。
到目前为止,我有:
XmlDocument doc = new XmlDocument();
doc.Load("C:\\test.xml");
XmlNode x = doc.SelectSingleNode("/TimelineInfo/Ambassador");它可以很好地选择注释,那么我到底如何才能获得其中的内容呢?
发布于 2010-06-03 23:25:55
我可以建议您看看LINQ-to-XML (System.Xml.Linq)吗?
var doc = XDocument.Load("C:\\test.xml");
string result = (string)doc.Root.Element("Ambassador");LINQ-to-XML比Xml*类(System.Xml)要友好得多。
否则,您应该能够通过检索InnerText属性来获取元素的值。
string result = x.InnerText;发布于 2010-06-03 23:29:01
InnerText属性应该适合您。
http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.innertext.aspx
顺便说一句,你可以考虑把API改成linq- to -xml (XElement和它的朋友),因为这是一个友好的,更容易交互的API。
System.Xml版本(注意:不需要转换为XmlElement )
var xml = @"<TimelineInfo>
<PreTrialEd>Not Started</PreTrialEd>
<Ambassador>Problem</Ambassador>
<PsychEval>Completed</PsychEval>
</TimelineInfo>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
var node = doc.SelectSingleNode("/TimelineInfo/Ambassador");
Console.WriteLine(node.InnerText);linq-to-xml版本:
var xml = @"<TimelineInfo>
<PreTrialEd>Not Started</PreTrialEd>
<Ambassador>Problem</Ambassador>
<PsychEval>Completed</PsychEval>
</TimelineInfo>";
var root = XElement.Parse(xml);
string ambassador = (string)root.Element("Ambassador");
Console.WriteLine(ambassador);发布于 2010-06-03 23:27:15
XmlDocument doc = new XmlDocument();
doc.Load("C:\\test.xml");
XmlNode x = doc.SelectSingleNode("/TimelineInfo/Ambassador");x.InnerText将返回内容
https://stackoverflow.com/questions/2967339
复制相似问题