asp.net 모바일 응용 프로그램을 개발 중입니다. XML을 데이터베이스로 사용하고 있습니다. 필요한 출력에 대해 다음 쿼리를 사용하고 있습니다. XML 파일에는 MIMICS 노드 컬렉션이 있습니다. & MIMICS 노드 안에 SECTION 노드 컬렉션이 있습니다. 하나 이상의 더 제 노드는 내가 XML 쿼리 다음 사용하고 위의 XML 파일의 경우LINQ to XML에서 descendants() 대신 사용할 메서드는 무엇입니까?
<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">
을 다음과 같이 내가있는 DataItem이 섹션 노드에서 하나 개 이상의 제 노드 (중첩 된 제 노드)를 포함
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") 메서드를 대체 할 수있는 다른 방법이있어 ID = 1 인 SECTION 노드에 대해서만 DATAITEM 노드에 액세스 할 수 있습니까? 위의 문제를 해결할 수있는 코드 또는 링크를 제공해 줄 수 있습니까?