2015-01-09 2 views
0

C#으로 코드를 작성해야합니다.xml 문자열을 구문 분석하고 값을 가져 오는 중

xml 요소를 포함하는 다음 문자열이 표시됩니다.

**"\n      <iqn:CDFID xmlns:iqn=\"ns:iqn:cwm:1.0\">Clearance Type</iqn:CDFID>\n      <iqn:CDFName xmlns:iqn=\"ns:iqn:cwm:1.0\">Clearance Type</iqn:CDFName>\n      <iqn:CDFValue xmlns:iqn=\"ns:iqn:cwm:1.0\">THE ACTUAL VALUE</iqn:CDFValue>\n      "** 

요소는 CDFID CDFName CDFValue가

상기 3 개 요소는 문자열 내부 임의의 순서 일 수있다. 어떻게하면 CDFValue xml 요소를 식별하고 "실제 값"값을 추출 할 수 있습니까?

문자열을 XML 형식으로 처리하고 원하는 요소 값을 가져올 수있는 방법은 무엇입니까?

+0

봐 [XDocument.Parse()] (http://msdn.microsoft.com/en-us : 여기에 실제 값을 얻을 수있는 샘플 코드는 /library/system.xml.linq.xdocument.parse(v=vs.110).aspx) –

+0

사용을 시도했지만 두 개 이상의 루트 요소에 대해 불평합니다. 그 3 요소의 루트 요소를 캡처 할 수 없습니다. –

+0

일부 루트 요소로 감싸십시오. –

답변

3

고려해야 할 몇 가지 사항이있어 :

문자열, 당신은 문서 조각으로 구문 분석, 또는 직접 루트 요소를 추가하거나 필요 유효한 XML 문서가 아닙니다 여러 요소를 포함

  1. .

  2. 요소에 네임 스페이스가 있으므로 노드에 액세스하려면 네임 스페이스를 만들어야합니다.

나는 XmlDocument보다 XDocument를 사용하는 것을 선호합니다. 밖으로

var validXml = "<root>" + value + "</root>"; 
var doc = XDocument.Parse(validXml); 

var ns = XNamespace.Get("ns:iqn:cwm:1.0"); 
Console.WriteLine(doc.Root.Element(ns.GetName("CDFValue")).Value); 

인쇄 "실제 값"에 대한

관련 문제