我正在使用.NET,我想做一些这样的字符串操作:
输入:
hi hello <bbb name='ahhahdch'>MR.JKROY</bbb>.how are you.Let's meet
<bbb name='bbcbc'>SUSANNE</bbb>. Our team lead is <bbb name='cdcdcd'>JACK</bbb>, from .net.
输出:
你好,你好MR.JKROY.how你。我们见面了。我们的团队负责人是JACK,来自.net。
简而言之,我想删除XML标记(包括属性)并检索标记的值。
答案 0 :(得分:1)
您没有有效的XML文档;如果您发现大部分(或全部)输入都是这样的,您可以轻松地将内容包装在虚拟标记中,以确保解析器不会失败(假设内部节点内容在其他XML元素的内容时有效),例如这样:
<root>
hi hello <bbb name='ahhahdch'>MR.JKROY</bbb>.how are you.Let's meet
<bbb name='bbcbc'>SUSANNE</bbb>. Our team lead is <bbb name='cdcdcd'>JACK</bbb>, from .net.
</root>
获得有效 XML文档后,您可以使用XmlDocument
class解析内容,然后使用InnerText
property获取删除了元素的文本:< / p>
string xml = <content from above>;
var doc = new XmlDocument();
doc.LoadXml(xml);
// Gives you only the text.
Console.WriteLine(doc.InnerText);
或者使用XDocument
class,然后从Value
property公开的XElement
上的Root
property on XDocument
获取文字:
XDocument doc = XDocument.Parse(xml);
// Gives you only the text.
Console.WriteLine(doc.Root.Value);
答案 1 :(得分:0)
hiya如果只删除HTML标记,则使用此
string result = Regex.Replace(htmlText, @"<(.|\n)*?>", string.Empty);
如果你正在获取XML feed,你可以使用LINQ好的回答来创建字符串:remove tags from a xml file written to a string?
How can I strip HTML tags from a string in ASP.NET?
干杯
答案 2 :(得分:-3)
使用HTML Agility pack http://htmlagilitypack.codeplex.com/可以使这种事情变得更加容易。您可以使用XPath语法查询元素。
您可以通过nuget获取它,但是从codeplex网站下载的项目有一个将html转换为文本的实用程序类的示例。