【发布时间】:2021-03-17 22:31:07
【问题描述】:
我有一个 c# 控制台应用程序,我可以在其中更新、添加和删除到目前为止工作的 xml 中的信息。但是当我使用 WriteLine 在控制台中显示 xml 时,它显示如下:
<ArrayOfKunde xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Kunde id="1">
<firstName>Hasan 2</firstName>
<lastName>sad</lastName>
<adress>sdfd</adress>
<birthday>vcxbgf</birthday>
<bankDetails>bcgh</bankDetails>
</Kunde>
<Kunde id="2">
<firstName>ghf</firstName>
<lastName>nbv</lastName>
<adress>bjk</adress>
<birthday>hjvn</birthday>
<bankDetails>jhgj</bankDetails>
</Kunde>
<Kunde id="3">
<firstName>mbn,</firstName>
<lastName>hgj</lastName>
<adress>ghj</adress>
<birthday>ghjg</birthday>
<bankDetails>hghj</bankDetails>
</Kunde>
</ArrayOfKunde>
这可能是由于我的代码打印它:
string filepath = "customerdatabase2.xml";
var xDoc = XDocument.Load(filepath);
Console.WriteLine(xDoc);
我想问是否有任何方法可以过滤显示的内容?例如我不想显示:
<ArrayOfKunde xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
【问题讨论】:
-
“显示如下”。你还没有真正解释它应该如何显示。你只是想消除根元素?
-
您需要iterate over the elements of xDoc 并选择性地只写入那些是 ArrayOfKunde 子节点的节点。可能有一个您可以使用的 XPath 表达式,但我已经离开该领域太久了,无法回忆细节。我敢肯定,有人会在这里插话。
-
List
Kundes = doc.Descendents("Kunde").ToList(); foreach(昆德语中的昆德语){ Console.Writeline(kunde.ToString()); }