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

标签 c# xml parsing file-io tostring

我正在编写一个程序,我试图从 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/

相关文章:

c# - OpenCL 内核问题

css - 应用没有类名的 CSS

ios - 如何为 Storyboard 创建 Xml?

python - 如何将字符串转换为数字列表

c# - 如何同时获取行数和行数

c# - 将 subsonic 与 mysql 一起使用

c# - 如何使用 C# 确定虚拟目录或网站的 ASP.NET 版本?

php - 在 PHP 中将大型 XML 文件转换为 CSV

php - 创建 DOMDocument : match one certain element in a PHP-parser

java - 关于 CSV 文件格式 SPLIT