解析 xml 字符串并获取值
parsing xml string and getting the value out
我需要用 C# 编写代码。
我得到以下包含 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
CDF名称
CDF 值
以上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);
打印出来"THE ACTUAL VALUE"
我需要用 C# 编写代码。
我得到以下包含 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 CDF名称 CDF 值
以上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);
打印出来"THE ACTUAL VALUE"