1

私は立ち往生しています、これは達成するのが非常に簡単でなければなりませんが、私は方法がわかりません。

私はこのコードを持っています:

 var divEl = doc.DocumentNode.SelectSingleNode("//div[@id='" + field.Id + "']");

 var newdiv = new HtmlGenericControl("div");
 newdiv.Attributes.Add("id", label.ID);
 newdiv.Attributes.Add("text", label.Text);
 newdiv.Attributes.Add("class", label.CssClass);

そして、私はこのようなことをする必要があります:

    divEl.AppendChild(newdiv); //not working its expecting a HtmlNode, not a HtmlGenericControl

どうすればこれを変換できますか?

事前のご回答ありがとうございます、chapas

4

3 に答える 3

1

代わりにHAPのAPIを使用してノードを作成しないのはなぜですか?非常によく似た動作をするはずです。

var newDiv = HtmlNode.CreateNode("<div/>");
newDiv.Attributes.Add("id", label.ID);
newDiv.Attributes.Add("text", label.Text);
newDiv.Attributes.Add("class", label.CssClass);

divEl.AppendChild(newDiv);

インスタンスの外部HTML HtmlGenericControl(AFAIK)を取得する簡単な方法はありません。持っている場合は、HTMLをHtmlNode.CreateNode()メソッドに渡して作成するだけです。しかし、私はそれを機能させようとしないことを強くお勧めします。

于 2012-02-23T20:57:05.730 に答える
0

以下のコードを試してください。いくつかの変更を加える必要があります。コントロールinnerHTMLは整形式であり、xmlNodeのinnerXMLとして使用できます。

XmlDocument doc = new XmlDocument();
//Load your xml here TODO
var divEl = doc.DocumentElement.SelectSingleNode("//div[@id='test']"); //Change your xpath here TODO
var newdiv = new HtmlGenericControl("div"); 
newdiv.Attributes.Add("id", "id"); 
newdiv.Attributes.Add("text", "text"); 
newdiv.Attributes.Add("class", "class");

XmlNode newNode = doc.CreateNode("NodeType", "NodeName", "URI/if/any"); //update your variables here
newNode.InnerXml = newdiv.InnerHtml;
divEl.AppendChild(newNode);

お役に立てれば

于 2012-02-23T11:49:11.697 に答える
0

HtmlGenericControlからOuterHtmlを取得する方法があります。

using (TextWriter textWriter = new StringWriter())
{
    using (HtmlTextWriter htmlWriter = new HtmlTextWriter(textWriter))
    {
        HtmlGenericControl control = new HtmlGenericControl("div");

        control.Attributes.Add("One", "1");
        control.Attributes.Add("Two", "2");
        control.InnerText = "Testing 123";

        control.RenderControl(htmlWriter);
    }
}

textWriter.ToString()を使用すると、次のようになります。

<div One="1" Two="2">Testing 123</div>
于 2012-03-13T17:45:57.443 に答える