C# 从字符串中剥离格式错误的HTML
有时,从第三方API返回的HTML元素格式不正确:C# 从字符串中剥离格式错误的HTML,c#,html,C#,Html,有时,从第三方API返回的HTML元素格式不正确: olor:red">Text</span> 第二个不会改变吗?非常粗略地说,你可以通过剥离之前的所有内容并非常粗略地保留之前的所有内容来剥离所有的“标签”,如果您只需要标签的内容,而不需要标签类型等信息,则可以使用正则表达式,通过剥离之前的所有内容并保留之前的所有内容来剥离所有“标签”: var r = new Regex(">([^>]+)<"); var text = "olor:red\">Te
olor:red">Text</span>
第二个不会改变吗?非常粗略地说,你可以通过剥离
之前的所有内容并非常粗略地保留之前的所有内容来剥离所有的“标签”,如果您只需要标签的内容,而不需要标签类型等信息,则可以使用正则表达式,通过剥离
之前的所有内容并保留之前的所有内容来剥离所有“标签”:
var r = new Regex(">([^>]+)<");
var text = "olor:red\">Text</span>";
var m = r.Match(text);
var r=new Regex(“>([^>]+)如果您只需要标记的内容,而不需要关于标记类型等的信息,则可以使用正则表达式:
var r = new Regex(">([^>]+)<");
var text = "olor:red\">Text</span>";
var m = r.Match(text);
var r=new Regex(“>([^>]+)我建议您看看,它也是一个非常方便的HTML清理工具
下面是一个使用上述库的方法示例:
static void Main()
{
var inputs = new[] {
@"olor:red"">Text</span>",
@"<span style=""color:red"">Text</span>",
@"Text</span>",
@"<span style=""color:red"">Text",
@"<span style=""color:red"">Text"
};
var doc = new HtmlDocument();
inputs.ToList().ForEach(i => {
if (!i.StartsWith("<"))
{
if (i.IndexOf(">") != i.Length-1)
i = "<" + i;
else
i = i.Substring(0, i.IndexOf("<"));
doc.LoadHtml(i);
Console.WriteLine(doc.DocumentNode.InnerText);
}
else
{
doc.LoadHtml(i);
Console.WriteLine(doc.DocumentNode.OuterHtml);
}
});
}
static void Main()
{
变量输入=新[]{
@“颜色:红色”“>文本”,
@“文本”,
@“文本”,
@“文本”,
@“文本”
};
var doc=新的HtmlDocument();
inputs.ToList().ForEach(i=>{
如果(!i.StartsWith(“”)=i.Length-1)
i=“我建议您看看,这是一个非常方便的工具,也用于HTML清理
下面是一个使用上述库的方法示例:
static void Main()
{
var inputs = new[] {
@"olor:red"">Text</span>",
@"<span style=""color:red"">Text</span>",
@"Text</span>",
@"<span style=""color:red"">Text",
@"<span style=""color:red"">Text"
};
var doc = new HtmlDocument();
inputs.ToList().ForEach(i => {
if (!i.StartsWith("<"))
{
if (i.IndexOf(">") != i.Length-1)
i = "<" + i;
else
i = i.Substring(0, i.IndexOf("<"));
doc.LoadHtml(i);
Console.WriteLine(doc.DocumentNode.InnerText);
}
else
{
doc.LoadHtml(i);
Console.WriteLine(doc.DocumentNode.OuterHtml);
}
});
}
static void Main()
{
变量输入=新[]{
@“颜色:红色”“>文本”,
@“文本”,
@“文本”,
@“文本”,
@“文本”
};
var doc=新的HtmlDocument();
inputs.ToList().ForEach(i=>{
如果(!i.StartsWith(“”)=i.Length-1)
我=”
static void Main()
{
var inputs = new[] {
@"olor:red"">Text</span>",
@"<span style=""color:red"">Text</span>",
@"Text</span>",
@"<span style=""color:red"">Text",
@"<span style=""color:red"">Text"
};
var doc = new HtmlDocument();
inputs.ToList().ForEach(i => {
if (!i.StartsWith("<"))
{
if (i.IndexOf(">") != i.Length-1)
i = "<" + i;
else
i = i.Substring(0, i.IndexOf("<"));
doc.LoadHtml(i);
Console.WriteLine(doc.DocumentNode.InnerText);
}
else
{
doc.LoadHtml(i);
Console.WriteLine(doc.DocumentNode.OuterHtml);
}
});
}
Text
<span style="color:red">Text</span>
Text
<span style="color:red">Text</span>
<span style="color:red">Text</span>