尝试获取 XML 中某些子元素的值,但是,在检索这些元素的值时,它们被拼接在一起。
此外,有时文件可以有 1 个参考编号,但也可以有多个。
以下代码
public class Test
{
public static void ParseXml(string xml)
{
var doc = XDocument.Parse(xml);
List<KeyValuePair<string, string>> caseList = new List<KeyValuePair<string, string>>();
var t = 1;
foreach (var el in doc.Descendants("ReferenceNumbers"))
{
//Console.WriteLine(el.ToString());
caseList.Insert(0, new KeyValuePair<string, string>(t.ToString(), el.Value));
t++;
}
for (int x = 0; x < caseList.Count; x++)
{
Console.WriteLine(caseList[x]);
}
}
public static void Main()
{
ParseXml(@"<root>
<ReferenceNumbers>
<Reference1>CN534786</Reference1>
<Reference2>CN476587</Reference2>
</ReferenceNumbers>
</root>");
}
}
结果是
[1, CN534786CN476587]
不过,我还是期待着 [1、CN534786] [2、CN476587]
使用
doc.Descendants(string).Elements()
代替:
foreach (var el in doc.Descendants("ReferenceNumbers").Elements())
{
caseList.Insert(0, new KeyValuePair<string, string>(t.ToString(), el.Value));
t++;
}
产生
[2, CN476587]
[1, CN534786]