【发布时间】:2016-08-30 03:53:13
【问题描述】:
我有以下 XDocument:
<ExtensionInfo>
<ObjectExtension />
<AttributeExtension>
<Attribute Name="PV" ExtensionType="inputoutputextension" InheritedFromTagName="$CT_STQ_V2" />
<Attribute Name="PV" ExtensionType="logdatachangeeventextension" InheritedFromTagName="$CT_STQ_V2" />
<Attribute Name="STS" ExtensionType="inputoutputextension" InheritedFromTagName="$CT_STQ_V2" />
<Attribute Name="STS" ExtensionType="booleanextension" InheritedFromTagName="$CT_STQ_V2" />
<Attribute Name="STS" ExtensionType="alarmextension" InheritedFromTagName="$CT_STQ_V2" />
<Attribute Name="STS" ExtensionType="logdatachangeeventextension" InheritedFromTagName="$CT_STQ_V2" />
</AttributeExtension>
</ExtensionInfo>
我试图返回 $CT_STQ_V2 当且仅当 Attribute Name="STS" 和 ExtensionType="alarmextension"
我如何使用 XDocument 和 LINQ 查询来获得我需要的东西。我需要解析数千个 XML 文件,因此需要快速的性能。任何建议都会有所帮助。
谢谢。
【问题讨论】:
-
到目前为止你有什么?
-
查看this 博客并更新您的问题以展示您的努力。
-
var q1 = from elm in xd.Descendants("Attribute") where (string)elm.Attribute("Name") == myObjectReader["AttributeName"].ToString() where (string) elm.Attribute("ExtensionType") == "alarmextension" 选择榆树; foreach (var elm in q1) { 继承 = (string)elm.Attribute("InheritedFromTagName"); }
标签: c# linq linq-to-xml