如何实例化和填充 XML 对象

本文关键字:XML 对象 填充 实例化 | 更新日期: 2023-09-27 18:37:17

我使用cmd "zypper --xmlout se -s perl-MIME-tools"查询存储库,以便我回到我的代码中一个xml格式的字符串。

我希望能够查询和使用此 xml - 如何将其转换为 xml 对象来执行此操作?

我的代码:

string output = queryTargetBix("zypper --xmloutput se -s perl-MIME-tools");

示例 XML(包含在输出中)

<?xml version='1.0'?>
<stream>
<message type="info">Loading repository data...</message>
<message type="info">Reading installed packages...</message>
<search-result version="0.0">
<solvable-list>
<solvable status="installed" name="perl-MIME-tools" kind="package" edition="5.427-2.10.1" arch="x86_64" repository="timbus_repo_local"/>
</solvable-list>
</search-result>
</stream>

如何将此 xml 存储在 obecjt 中,以便我可以轻松获得"版本"值?

如何实例化和填充 XML 对象

您可以使用 XmlSerialization,它将字符串转换为一组普通的 .Net 对象,也可以使用 XmlDocument 类,该类提供了一种查询 XML 文档的方法。后者更容易设置,但更难使用。

还有Linq to XML,但我从未使用过它,它仅在.Net 3.5及更高版本中可用。

例如,要使用 XmlDocument 提取版本,您可以使用如下代码:

        XmlDocument doc = new XmlDocument();
        doc.LoadXml(stringWithXmlIn);
        XmlNode solvableNode = doc.SelectSingleNode("stream/search-result/solvable-list/solvable");
        string edition = solvableNode.Attributes["edition"].Value;