1
저는 XML과 LINQ에 새로운 기능이 있습니다. 여러 XML을 LINQ 자습서로 읽었지만 XML 문서 중 어느 것도 내 방식대로 포맷 된 것처럼 보이지 않습니다. 나는 그것이 (그리고 어떻게) 그것이 사물을 변화시키는 지 확신하지 못한다.XML에서 메타 데이터가 포함 된 LINQ
XDocument document = XDocument.Load("URLHERE.xml");
var term = from row in document.Descendants("row")
select new
{
Term = row.Element("Term").Value,
Subject = row.Element("Subj").Value,
Subject_Description = row.Element("Subj_desc").Value,
};
: 나는 코드가 다음과 같이 보일 것입니다 생각 읽고 싶다면
<data>
<row>
<Term>201320</Term>
<Subj>ACCT</Subj>
<Subj_desc>Accounting</Subj_desc>
</row>
<row>
<Term>201320</Term>
<Subj>ACCT</Subj>
<Subj_desc>Accounting</Subj_desc>
</row>
</data>
:
나는 인터넷에서 읽은 모든 예제는
이 형식을 따라하는 것 문제는 다음과 같습니다. XML 문서가 동일한 형식을 따르지 않습니다. 각 용어에 대해 다른 태그를 반복하는 대신 상단에 일련의 메타 데이터가 있고 각 데이터 집합에 대해 SAME 태그가 사용됩니다.<metadata>
<item name="TERM" type="xs:string" length="128"/>
<item name="SUBJ" type="xs:string" length="128"/>
<item name="SUBJECT_DESC" type="xs:string" length="512"/>
</metadata>
<data>
<row>
<value>201320</value>
<value>ACCT</value>
<value>Accounting</value>
</row>
<row>
<value>201320</value>
<value>ACCT</value>
<value>Accounting</value>
</row>
</data>
어떻게 그것에서 데이터를 추출 할
:여기 내 XML 문서의 샘플입니까?
var term = from row in document.Descendants("row")
select new
{
Term = row.Element("value").Value,
Subject = row.Element("value").Value,
};
올바르게 보이지 않습니다. 나는 C# BTW를 사용하고있다. (태그가 충분한 지 말할 필요가 있을지 모르겠다.)
, 원래가 올바른지의는 IEnumerable을 포함하는 메타 데이터를
점점 행을 가져 오는 예는, 실수로 내 샘플을 그을 떠났다. 태그 사이에 무엇이든 추출하려고합니다. 결국 XML에 대한 쿼리를 실행하거나 목록에 모든 것을 던지려고합니다. 아직 결정하지 않았습니다. –
rayden54
내 대답의 마지막 LINQ 쿼리는 Row의 IEnumerable을 제공합니다. 그들을 통해 열거 할 때 IEnumerable은 그 행에 대한 3 개의 값을 포함하는 값을 가지고 있습니다. value 요소에는 속성이 없으므로 용어, 주제 등으로 식별 할 수 없으므로 값 요소는 모두 값 요소입니다. XML의 모습을 제어 할 수 있다면 속성을 추가하면 쿼리 할 때 훨씬 좋은 결과를 얻을 수 있습니다 – James