HTMLAgilityPackを使用してノードを特定の順序で挿入する際に問題が発生する

asp.net-mvc-4 c# html-agility-pack nodes

質問

私はHTMLAgilityで再び失われています。

ここで私が作業しているHTML文字列は次のとおりです。

<table>...</table>

私はこれを修正することを試みている:

<table>...</table>

ここで私のコードは、私は体以外のすべてを得ることができます。アドバイスはありますか?

<table>...</table>

このコードは私にこれを与えています - あなたが<body>が間違った場所にあるのを見ることができます。

<table>...</table>

受け入れられた回答

<html>を除く<head> <html>すべてのコンテンツを<body>タグ内に配置したいと思うので、 <head>追加する前にまず<body>ノードを追加しようとすることができます:

.....
HtmlNode htmlBody = doc.DocumentNode.SelectSingleNode("//body");
if (htmlBody == null)
{
    htmlBody = doc.CreateElement("body");
    //move all child of <html> to be child of <body>
    HtmlNodeCollection htmlCollection = htmlNode.ChildNodes;
    htmlBody.AppendChildren(htmlCollection);
    htmlNode.RemoveAllChildren();
    //add <body> to <html>
    htmlNode.PrependChild(htmlBody);
}

//check if <head> exists, if not create <head>
HtmlNode head = doc.DocumentNode.SelectSingleNode("//head");
if (head == null)
{
    //add <head> to <html>
    head = doc.CreateElement("head");
    htmlNode.PrependChild(head);
}
.....



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ