2011-02-10 5 views
2

XML 파일을 직렬화/비 직렬화 한 경험이 있지만 단 하나의 문을 파싱하지 않아본 적이 없으므로이 문제를 해결하는 방법을 모르겠습니다. 난 그냥 102.14을 추출 할,문자열의 단일 XML 문을 구문 분석

<Vol Model_Type="Flat">102.14</Vol> 

그리고 :

나는이 보유하는 문자열을 가지고있다.

XPath를 사용해야합니까, 아니면 더 간단한 옵션이 있습니까?

답변

8

.NET 3.5 이상을 사용하는 경우 LINQ to XML을 사용하십시오. 예를 들어 :

string x = "<Vol Model_Type=\"Flat\">102.14</Vol>"; 
XElement element = XElement.Parse(x); 
decimal value = (decimal) element; 

XML 처리는 그것보다 훨씬 간단하지 않습니다 :) 물론

, 그건 당신이 요소 이름이나 속성에 대한 상관 없어 가정입니다. 그렇게해도 LINQ to XML은 여전히 ​​쉽게 사용할 수 있습니다.

+0

내가 찾고있는 것 같이 보입니다. 나는 .NET 4.0을 사용하고있다. 그러나 XElement에는 Parse 속성이없는 것 같습니다. System.Linq 네임 스페이스를 추가했습니다. 어쨌든, 올바른 방향으로 나를 가르쳐 주셔서 감사합니다. – xbonez

+0

@xbonez : System.Xml.Linq 네임 스페이스가 필요하며 XElement에는 Parse 메서드가 있어야합니다 (http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement). parse.aspx –

+0

이상한. System.Xml 및 System.Xml.Linq에 대한 참조를 추가하고 두 네임 스페이스를 추가하고 'System.Xml.XmlElement'에 'Parse'에 대한 정의가 포함되어 있지 않음을 알게되었습니다. – xbonez

0
string x = "<Vol Model_Type=\"Flat\">102.14</Vol>"; 
XElement element = XElement.Parse(x); 
decimal value=element.Value.Tostring();