解析xml字符串并获取值
问题描述:
我需要在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元素并提取值“THE ACTUAL VALUE”。
如何以xml方式处理字符串并获取所需元素的值。
答
有几个是要考虑的事情:
该字符串包含多个元素,你需要或者解析它作为文档片段,或自己添加一个根元素是不是有效的XML文档。
元素中有名称空间,您需要创建名称空间来访问节点。
我更喜欢在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);
打印出 “实际值”
查找[XDocument.Parse()](http://msdn.microsoft.com/en-us /library/system.xml.linq.xdocument.parse(v=vs.110).aspx) – 2015-01-09 23:30:14
我试过使用它,但它抱怨超过1个根元素。我无法捕捉到这三个要素的根源。 – 2015-01-09 23:39:06
用一些根元素包装它。 – 2015-01-09 23:48:38