Anu*_*Anu 0 c# xml xml-parsing
我从xml格式的Web服务获得响应,数据在xml节点的cData部分内.现在当我试图提取节点值然后用cdata文本获取值.我怎样才能删除这个并在cdata中获取文本.请建议我这样做的最佳方式.现在写我正在使用正则表达式从结果值中删除cdata.在此先感谢.![CDATA [Xyz]].
<ResumeParserData>
<ResumeFileName><![CDATA[]]></ResumeFileName>
<ParsingDate><![CDATA[3/29/2012 1:37:33 AM]]></ParsingDate>
<TitleName><![CDATA[]]></TitleName>
<FirstName><![CDATA[abc]]></FirstName>
<Middlename><![CDATA[Kr]]></Middlename>
<LastName><![CDATA[abc]]></LastName>
<Email><![CDATA[xyz@gmail.com]]></Email>
<Phone><![CDATA[+91 8527502445]]></Phone>
</ResumeParserData>
Run Code Online (Sandbox Code Playgroud)
现在我使用正则表达式从结果值中删除cdata
好吧,我将停止使用正则表达式来解析XML.
使用XML API - 例如,LINQ to XML很可爱.这应该透明地让你得到文本,除非你真的想要,否则你甚至不必知道它曾经在CDATA部分.例如,使用如下XML文件:
<parent>
<child>
<![CDATA[Foo]]>
</child>
</parent>
Run Code Online (Sandbox Code Playgroud)
我们可以这样得到这样的文字:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
var doc = XDocument.Load("test.xml");
var child = doc.Root.Element("child");
var text = child.Value;
Console.WriteLine("Text: {0}", text);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:稍微改变上面的代码:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
var doc = XDocument.Load("test.xml");
foreach (var child in doc.Root.Elements())
{
Console.WriteLine("{0}: {1}",
child.Name, child.Value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
...当我在问题中的XML上运行时,我得到:
ResumeFileName:
ParsingDate: 3/29/2012 1:37:33 AM
TitleName:
FirstName: abc
Middlename: Kr
LastName: abc
Email: xyz@gmail.com
Phone: +91 8527502445
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7058 次 |
| 最近记录: |