gpt4 book ai didi

c# - 在 C# 中将 XML 文件解析为字符串

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:31 25 4
gpt4 key购买 nike

我正在编写一个程序,我试图从 XML 文件中获取信息,将其分解并将信息存储在 4-5 个不同的字符串中。这是我必须获取 XML 文件的代码。

private void getVersionXML()
{
sVersionConfigPath = sLocationKey + "Core\\config.xml"; //Path to XML File
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(sVersionConfigPath); //Load config.xml
XmlNodeList xmlNodes = xmlDoc.GetElementsByTagName("PrimaryDatabase");
foreach (XmlNode xmlNode in xmlNodes)
{
label1.Text = xmlNode.SelectSingleNode("database").InnerText; //Breaks Here
}

}

这是 XML 文件的样子。

<ProgXML>
<PrimaryDatabase Updating="N">
<Database Driver="SQL Server" Server="serverName" User="sa" Password="Iyp4kvRIS7Orl+NjkhIjvg==" Database="dbName" Owner="" Port="" UncBase="" ImpUser="" />
<DataExists Action="Reset" When="5/20/2015 3:17:36 PM" />
<TableCollection Name="Core" Who="CPUser" ProcessID="0" ProcessName="" Status="Complete" When="5/20/2015 3:17:47 PM" LayoutVersion="39" DataVersion="39" />
<TableCollection Name="Prog" Who="CPUser" ProcessID="0" ProcessName="" Status="Complete" When="5/20/2015 3:17:47 PM" LayoutVersion="38" DataVersion="38" />
</PrimaryDatabase>
</ProgXML>

本质上,我只是想获取 <Database /> 中显示的所有内容标记并将其存储到字符串中(或者在本例中,只是打印到标签以进行调试)。

但是代码在我上面用 NullReferenceException 评论的地方中断了对于“对象引用未设置为对象的实例”。而且我不太确定哪里出错了。任何帮助将不胜感激。谢谢。

最佳答案

你可以使用 Linq2Xml

var xDoc = XDocument.Load(filename);
var dict = xDoc.Descendants("Database")
.First()
.Attributes()
.ToDictionary(x => x.Name, x => x.Value);

如果您希望该值仅用于调试目的,

var str = string.Join("; ", xDoc.Descendants("Database")
.First()
.Attributes()
.Select(x => x.Name + "=" + x.Value));

关于c# - 在 C# 中将 XML 文件解析为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31330515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com