0

次のように、文字列からhtmldocumentを作成するためにHtmlAgilityPackを使用しています。

   HtmlDocument updoc = new HtmlDocument();
   updoc.load(stringContents);

ここで、HtmlNodesをXElementの子として挿入します。私は試した :

   XDocument xdoc = XDocument.load(path);
   XElement body = xdoc.Descendants(ns + "body").Single();
   body.Add(updoc.GetElementbyId("h"));
   body.Add(updoc.GetElementbyId("m"));
   body.Add(updoc.GetElementbyId("f"));

ただし、結果はオブジェクト名(HtmlNodeAgilityPack、..)のみであり、機能しません。基本的に、私はHtmlAgilityPackとlinqtoxmlの組み合わせを使用しようとしています。これは可能ですか?

4

2 に答える 2

0

私はただグーグルで検索しているだけなので、これはうまくいかないかもしれません。ただし、要素を作成するには、によって返されるHtmlNodeのプロパティを使用する必要があります。GetElementbyId()

だから、このようなもの:

HtmlNode node = updoc.GetElementbyId("h");
XElement e;
body.Add(e = new XElement(node.Name, XElement.Parse(node.InnerHtml)));

ノードにHtmlAttributeがある場合は、次のように追加します。

foreach(HtmlAttribute att in node.Attributes)
{
    e.Add(new XAttribute(att.Name, att.Value));
}
于 2012-07-31T17:31:09.210 に答える
-1

StringBuilder を使用して xml を生成し、XDocument.Parse(string)で解析しないのはなぜですか。

Example :

StringBuilder xmlBuilder = new StringBuilder();
//Build xml with the builder
XDocument xDoc = XDocument.Parse(xmlBuilder.ToString());
于 2012-07-31T16:29:10.847 に答える