我正在開發asp.net移動應用程序。我使用XML作爲數據庫。我正在使用以下查詢來獲取所需的輸出。在XML文件中,我擁有MIMICS節點集合&在MIMICS節點中,我有SECTION節點的集合。一個或多個更多SECTION節點包含一個或多個部分的節點(嵌套SECTION節點)將部分節點我的DataItem如下應該用哪種方法代替LINQ to XML中的後代()?
<MIMIC ID="3" NAME="Network Status">
<SECTIONS>
<SECTION ID="1" NAME="SDA Server 1" HAS-SUBSECTIONS="TRUE">
<DATAITEM NAME="ABC">XYZ</DATAITEM>
<SECTION ID="2" NAME="Top Side">
<DATAITEMS>
<DATAITEM>Not Available</DATAITEM>
</DATAITEMS>
</SECTION>
<SECTION ID="3" NAME="Subsea" HAS-SUBSECTIONS="TRUE">
<SECTION ID="4" NAME="SDA">
<DATAITEMS>
<DATAITEM NAME="SEMA">
<ATTRIBUTE NAME="TYPE" VALUE="?" APPEND-TAG-NAME-BY ="?"/>
<ATTRIBUTE NAME="TagName" VALUE="?"/>
<ATTRIBUTE NAME="OPCTagName" VALUE="?"/>
</DATAITEM>
<DATAITEM NAME="SEMB">
<ATTRIBUTE NAME="TYPE" VALUE="?" APPEND-TAG-NAME-BY ="?"/>
<ATTRIBUTE NAME="TagName" VALUE="?"/>
<ATTRIBUTE NAME="OPCTagName" VALUE="?"/>
</DATAITEM>
</DATAITEMS>
</SECTION>
<SECTION ID="5" NAME="Manifolds" HAS-SUBSECTIONS="TRUE">
對於上述XML文件我使用下面的XML查詢
string MIMIC_ID = "3";
string SECTION_ID = "1";
var QueryResultSet = from Mimic in FieldRoot.Element("USER-INTERFACE-DEFINITION").Element("MIMICS").Descendants("MIMIC")
.Where(e => e.Attribute("ID").Value == MIMIC_ID)
from DataItem in Mimic.Descendants("SECTION")
.Where(e => e.Attribute("ID").Value == SECTION_ID)
.Descendants("DATAITEM")
select DataItem;
在上述XML查詢中,我只想爲ID = 1的SECTION節點訪問DATAITEM節點。但是我得到了SECTION ID爲2,3,4,5的所有DATAITEM節點。我認爲這是因爲我正在使用Mimic.Descendants(「SECTION」)。有沒有其他方法可以替代Mimic.Descendants(「SECTION」)方法,以便我可以僅訪問IDIT爲1的SECTION節點的DATAITEM節點?你能提供我的代碼或任何鏈接,通過我可以解決上述問題