HtmlAgilityPackでHtmlNodeを複製しますか?

c# html-agility-pack xpath

質問

私はHTML Agility Packを使用して、同じページで2つの異なることを行っています。
最初のものについては、スクリプト、スタイルなどの要素を削除する必要があります。しかし、2番目の要素については、すべての要素を保持する必要があります。

最初のものの前に2番目の部分を行うことはできないので、最初はオブジェクトを複製する方法を探していますので、2番目の部分のすべての要素を保存できます。それは私が試したコードですが、いくつかの共鳴については、私はそれの中にノードを取得しません。

        HtmlDocument HTMLdoc = new HtmlDocument();
        HTMLdoc.LoadHtml(sFetch);

        //duplicate document node
        var webPage = HtmlNode.CreateNode("<html></html>");
        webPage.CopyFrom(HTMLdoc.DocumentNode,true);

私が考えた別の方法は、削除する要素をすべて選択するxpathを逆にすることです。オブジェクトから実際に要素を削除することなく、それらを選択することができます。しかし、XPathのnot()関数を使ってクエリを逆にする方法を理解できません。これが私のXPathクエリです。

"//script | //style | //iframe | //select | //textarea | //comment() | //a[@href]"

あなたの時間と助けてくれてありがとう:)

人気のある回答

私は似たようなことをしています。私はこの情報を入手してXMLに変換しなければなりませんでした。ここにあなたが必要なものがあります:

        HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
        htmlDoc.LoadHtml(sfetch);

        HtmlNodeCollection page = htmlDoc.DocumentNode.SelectNodes("//table");//whatever tags your are looking for in your doc

        foreach (HtmlNode value in page)
        {
            richTxtboxFilteredHTML.Text += value.InnerText;
        }

これをさらに処理する場合は、各HtmlNodeを参照し続ける必要があります。




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