2011-08-27 7 views
2

데이터 :XML에서 값을 읽는 방법?

XmlDocument document = new XmlDocument(); 
document.LoadXml(data); 
XmlElement node = document.SelectSingleNode("/sys/value") as XmlElement; 
Console.WriteLine("node = " + node); 

이 문제는 : Console.WriteLine("node = " + node);node: 외에 나에게 출력을 제공하지 않습니다하지만 실제 값

<sys> 
    <id>SCPUCLK</id> 
    <label>CPU Clock</label> 
    <value>2930</value> 
</sys> 
<sys> 
    <id>CPUTEMP</id> 
    <label>CPU Temp</label> 
    <value>39</value> 
</sys> 

이것은 내가 데이터를 읽기 위해 사용하고 코드입니다 위의 샘플에서 2930과 유사합니다.

감사

답변

2

, 당신은 또한 (내 취향이다) XML에 LINQ를 사용할 수 있습니다.

using System.Xml.Linq; 

XDocument xDoc = new XDocument(); 
// Parse loads the XDocument with XML from a string 
xDoc = XDocument.Parse(data); 

string node = (from x in xDoc.Root.Elements("value") 
       select x.Value).SingleOrDefault(); 

Console.WriteLine("node = " + node); 

XmlDocument를 사용하여 특히 당신이하고있는 일에 아무런 문제가 없지만, XmlDocument보다 훨씬 쉽게 작업 할 수 있기 때문에 기회가 생길 때 LINQ to XML을 확인하고 싶을 수도 있습니다.

당신은 모든 "값"요소를 얻고 싶은 경우에, 단순히 쿼리의 SingleOrDefault()을 제거하고 할 수 있습니다 결과를 통해이 같은 루프 : 여기

var nodes = from x in xDoc.Root.Elements("value") 
      select x.Value; 

foreach (var node in nodes) 
{ 
    Console.WriteLine("node = " + node); 
} 

체크 아웃 가치가 사이트 : LINQ to XML - 5 Minute Overview

+0

당신은 단순히 굉장합니다! 고마워, 나는 내 Arduino 프로젝트로 마침내 나아갈 수있다. – Csharpz

+0

반갑습니다. – Tim

+0

안녕하세요, 그 데이터는 제가 처음으로 보여준 데이터 중 하나만 요소가 있고, 그 중 여러 요소가 있다는 것을 보여주었습니다. 나는 그 의미를 보여주는 첫 번째 게시물을 편집했습니다. – Csharpz

4

사용 node.value 즉,을 XmlDocument를 사용하는 대신 XmlElement.value

관련 문제