Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HmlAgilityPack修复未打开标记_C#_Html_.net 4.5_Html Agility Pack - Fatal编程技术网

C# HmlAgilityPack修复未打开标记

C# HmlAgilityPack修复未打开标记,c#,html,.net-4.5,html-agility-pack,C#,Html,.net 4.5,Html Agility Pack,我从url html页面获取。 在第页中,我得到了带有热打开的标记的表 <table class="transparent"> <tr><td>Sąrašo eil. Nr.:</td><td>B-FA001</td></tr> <td>Įrašymo į Sąrašą data:</td><td>2006-11-13</td></tr>

我从url html页面获取。 在第页中,我得到了带有热打开的
标记的表

<table class="transparent">
    <tr><td>Sąrašo eil. Nr.:</td><td>B-FA001</td></tr>
    <td>Įrašymo į Sąrašą data:</td><td>2006-11-13</td></tr>
</table>

萨拉索埃尔。编号:B-FA001
ĮrašymoįSąrašą数据:2006-11-13
如何修复

<table class="transparent">
    <tr><td>Sąrašo eil. Nr.:</td><td>B-FA001</td></tr>
    <tr><td>Įrašymo į Sąrašą data:</td><td>2006-11-13</td></tr>
</table>

萨拉索埃尔。编号:B-FA001
ĮrašymoįSąrašą数据:2006-11-13
我试着去做

private HtmlDocument GetHtmlDocument(string link)
{
    string url = "http://195.182.67.7/paslaugos/administratoriai/bankroto-administratoriai/" + link;
    var web = new HtmlWeb { AutoDetectEncoding = false, OverrideEncoding = Encoding.UTF8 };
    var doc = web.Load(url);
    doc.OptionFixNestedTags = true;
    doc.OptionAutoCloseOnEnd = true;
    doc.OptionCheckSyntax = true;

    // build a list of nodes ordered by stream position
    NodePositions pos = new NodePositions(doc);

    // browse all tags detected as not opened
    foreach (HtmlParseError error in doc.ParseErrors.Where(e => e.Code == HtmlParseErrorCode.TagNotOpened))
    {
        // find the text node just before this error
        var last = pos.Nodes.OfType<HtmlTextNode>().LastOrDefault(n => n.StreamPosition < error.StreamPosition);
        if (last != null)
        {
            // fix the text; reintroduce the broken tag
            last.Text = error.SourceText.Replace("/", "") + last.Text + error.SourceText;
        }
    }
    doc.Save(Console.Out);
    return doc;
}
private HtmlDocument GetHtmlDocument(字符串链接)
{
字符串url=”http://195.182.67.7/paslaugos/administratoriai/bankroto-administratoriai/“+链接;
var web=new HtmlWeb{AutoDetectEncoding=false,OverrideEncoding=Encoding.UTF8};
var doc=web.Load(url);
doc.OptionFixNestedTags=true;
doc.OptionAutoCloseOnEnd=true;
doc.OptionCheckSyntax=true;
//构建按流位置排序的节点列表
节点位置pos=新节点位置(doc);
//浏览检测到未打开的所有标记
foreach(doc.ParseErrors.Where(e=>e.Code==HtmlParseErrorCode.TagNotOpened)中的HtmlParseError错误)
{
//查找此错误之前的文本节点
var last=pos.Nodes.OfType().LastOrDefault(n=>n.StreamPosition

但不修复

对于此特定问题,您可以执行简单的正则表达式替换:

 string wrong = "<table class=\"transparent\"><tr><td>Sąrašo eil. Nr.:</td><td>B-FA001</td></tr><td>Įrašymo į Sąrašą data:</td><td>2006-11-13</td></tr></table>";
 Regex reg = new Regex(@"(?<!(?:<tr>)|(?:</td>))<td>");
 string right = reg.Replace(wrong, "<tr><td>");
 Console.WriteLine(right);
string-error=“Sąrašo eil.编号:B-FA001ĮrašymoįSąraš261;š数据:2006-11-13”;
正则表达式reg=新正则表达式(@“(?)|(?:)”);
字符串right=reg.Replace(错误,“”);
控制台。WriteLine(右);

试试这个:我试过了,但可能是做了坏事。