【发布时间】:2015-02-11 07:02:56
【问题描述】:
我有 xml 文件。这只是该文件的一部分
1 <mainTerm>
2 <title> Abandonment </title>
3 <see> Maltreatment </see>
4 </mainTerm>
5 <mainTerm>
6 <title> Abasia <nemod>(-astasia) (hysterical) </nemod></title>
7 <code>F44.4</code>
8 </mainTerm>
我有很多<mainTerm>,我会遍历所有这些。我复制了元素的所有数据,但是当我到达第 6 行时,我遇到了问题。如何复制所有这些内容?我需要得到最后的字符串,它看起来像“Abasia (-astasia) (歇斯底里)”。
这是我的应用程序中与该文件一起使用的部分
List<string> nodes = new List<string>();
//Create XmlReaderSettings object
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
//Create XmlReader object
XmlReader xmlIn = XmlReader.Create(path, settings);
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
if (xmlIn.ReadToDescendant("mainTerm"))
{
do
{
xmlIn.ReadStartElement("mainTerm");
nodes.Add(xmlIn.ReadElementContentAsString());
nodes.Add(xmlIn.ReadElementContentAsString());
} while (xmlIn.ReadToNextSibling("mainTerm"));
}
【问题讨论】:
-
小心使用“文本节点”。文本节点是一种特定类型的 XML 节点,只能包含字符数据。我认为您的意思是 mainTerm 具有“混合内容”,即字符数据和元素。
-
用你的代码更新问题
-
是的,我的意思是“混合内容”,但我如何从混合内容中获取所有数据以获得结果“Abasia (-astasia) (歇斯底里)”。