XML 문자열의 데이터를 일종의 구조로로드하려고 시도 했으므로 일단로드되면 Data.PropertyName에서 값을 읽을 수 있습니다.xml 값을 구조에로드하는 가장 효율적인 방법입니까?
아래 코드는 구조에 데이터를로드하는 가장 좋은 방법입니까?
분명히 First()를 호출하면 메모리가 손상 될 수 있습니다. 따라서 하위 요소가있는 요소가있는 경우 First()를 호출하면 문제가됩니다.
감사
string xml = @"<ROOT>
<ID>1</ID>
<NAME>RF1</NAME>
<STAT>10200</STAT>
<TEST>
<ID>1</ID>
<NAME>BIGUN</NAME>
</TEST>
</ROOT>
";
XElement Data = XElement.Parse(xml);
var Element = (from p in Data.Descendants("ROOT")
select new {
ID = (int)p.Element("ID"),
Test = new {
ID = p.Element("TEST").Descendants("ID").First(),
NAME = p.Element("TEST").Descendants("NAME").First()
},
Stat = p.Element("STAT") }).First();
//Read Element.ID, Element.Test.Name
와우, 고마워. 이전에 그러한 접근법을 본 적이 없었습니다. 이것이 LINQ보다 효율적이라고 말하거나 매우 유사하다고 생각하십니까? 클래스에 XML에 나타나지 않는 XMLElement와 관련된 속성이 있거나 예외를 throw하거나 속성 값을 null로 설정하면 어떻게됩니까? – Jon
@ 존 : XML에서 읽어야 할 내용을 찾으려면 리플렉션을 사용해야하므로 LINQ보다 약간 효율적일 것으로 기대합니다. 확실하게 알아 내기 위해 코드를 프로파일 링해야합니다. XmlElement 특성의 IsNullable 속성을 사용하여 요소가 XML에 필요한지 여부를 지정할 수 있습니다. – Guffa