저는 C#을 사용하여 XML 파일에서 항목 모음을 추출하려고 시도하는 코드를 작성했습니다. 나는 주위를 읽고되었고 XML 계층 구조의 상대적 복잡성으로 인해 그러나
using System.Xml.XPath;
using System.Xml.Linq;
를 사용하여 LINQ의 길을 가기로 결정했다, 나는와 관계있는 요소에 액세스하는 방법을 통해 조금 혼란 얻고있는 이 경우 다음과 같은 XML에서 'dCost'와 'iCost'입니다
<?xml version="1.0" encoding="utf-8"?>
<message xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
pStart="2010-01-01T12:12:12"
pEnd="2010-01-01T12:12:12"
fYear="2010-11"
OrgID="21122211" xmlns="urn://www.XXXX.com/vcopdc/2011/01/v0.5">
<episodes>
<episode
eKey="001448101"
ur="1219765"
campus="1334"
eStart="17/01/2010 6:00:00 AM"
eEnd="17/01/2010 11:00:00 AM"
stream="X"
dob="6/12/1936 12:00:00 AM"
atsi="2"
pCode="3075">
<episodeCosts>
<episodeCost
area="A0902"
description="General ATOMIC"
account="GF"
dCost="0.0393072400937604"
iCost="0.156445858061913"
location="101"
sDate="17/01/2000 12:00:00 AM" />
<episodeCost
area="AAS2W"
description="General ATOMIC"
account="LAB"
dCost="0.0169883227585181"
iCost="0.0110702327817353"
location="101"
sDate="17/01/2000 12:00:00 AM" />
</episodeCosts>
</episode>
</episodes>
</message>
지금까지 도착하여 dCost 읽기 전용으로 다음은 무엇을 : 어떤 작업을 수행
var doc = XDocument.Load(strFileName);
var values = doc.XPathSelectElements("//message/episodes/episode/episodeCosts");
foreach (var item in values)
{
foreach (var att in item.Elements("episodeCost"))
{
var value = att.Attribute("dCost").Value;
}
}
을 즉, 구문이 올바르지 않기 때문에 원하는 요소를 찾지 못합니다. 많은 예제를 살펴 보았지만 XML은 항상 임베드되지 않으므로 예제를 확장하기가 어렵습니다. 어떤 도움이라도 대단히 감사 할 것입니다.
편집 :
using (var reader = XmlReader.Create(strFileName))
{
while (reader.Read())
{
// Some code here.
}
}
가 다시 어떤 도움이 가장
를 감사 : 지금 인해 내 XML 파일이 너무 커서 사실, 내가 좋아하는 뭔가를 사용할 필요가 있음을 깨달았다.
예 결과를 반환하지 않습니다. 사과드립니다. 편집 내용에 맞습니다. 그것이 내가 가진 것입니다. 나는 이제 이것을 버리겠다. – MoonKnight