我正在寻找一种使用 LINQ 查询 CIM XML 文件的方法,以加快我对数据的分析并验证来自包含电网元素的数据库的导出。由于我是 C# 的新手,我猜想在控制台应用程序中加载 CIM XML 并根据标签值过滤一些元素会很容易。然而,到目前为止我发现的所有教程都是直截了当的,其中元素被命名为“学生”、“购买”等。
我的元素被命名为“cim:LoadBreakSwitch”,其中“cim”是根节点中定义的实际地址。
这样,当我尝试选择所有名为“cim:LoadBreakSwitch”的元素时,我会在运行时抛出异常,因为元素的名称不能包含冒号。
我想从 CIM XML 文件中选择的元素示例:
<cim:LoadBreak rdf:ID="101">
<cim:ConductingEquipment.phases>A</cim:ConductingEquipment.phases>
<cim:IdentifiedObject.description>PoleMounted</cim:IdentifiedObject.description>
</cim:LoadBreak>
当我在控制台中打印所有元素的名称时
IEnumerable<XElement> elements = xmlDoc.Elements();
foreach (var item in elements)
{
Console.WriteLine(item.Name);
}
我得到类似“{http://[根节点的地址]}LoadBreak”的东西。
我不知道是否有可能这样做,但我只是好奇是否有经验丰富的开发人员需要做类似的事情。