9

重複の可能性:
XElementのInnerXmlを取得する最良の方法は?

XElementを使用してHTMLサーバーサイドのブロックを保持しています。

そのXElementの子を、javascriptの「InnerHtml」プロパティのように文字列に変換したいと思います。

誰かがこれについて私を助けてくれますか?:)

4

5 に答える 5

27

要素に他の要素のみが含まれている場合、他の回答が機能します。テキストも含める場合は、Elements()の代わりにNodes()を使用することをお勧めします。

var result = string.Concat(element.Nodes());
于 2010-06-19T15:47:42.613 に答える
3

XElementクラスは、要素の「内部XML」を直接取得するためのメソッドを提供しません。
ただし、子要素を手動で連結することはできます。たとえば、

string result = string.Concat(element.Elements());

また

string result = string.Join(Environment.NewLine, element.Elements());
于 2010-06-19T15:40:11.077 に答える
2

ここでパフォーマンステストを使用して、さまざまなオプションを参照してください。XElementのInnerXmlを取得するための最良の方法は?

矢筒の拡張メソッドを次のように作成することをお勧めします。

/// <summary>
///  Gets the inner XML of an <see cref="XElement"/>. Copied from
///  https://stackoverflow.com/questions/3793/best-way-to-get-innerxml-of-an-xelement
/// </summary>
/// <param name="element">The element.</param>
/// <returns>The inner XML</returns>
public static string GetInnerXml(this XElement element)
{
    var reader = element.CreateReader();
    reader.MoveToContent();
    return reader.ReadInnerXml();
}
于 2010-08-11T03:22:33.667 に答える
0

foreach(var element in Element.Elements()){yield return element.ToString(); }

文字列を含むIEnumerableを返します。

于 2010-06-19T15:40:53.440 に答える
0

私にとっては、Quartermeisterのおかげでこのように機能します

string result = string.Concat(instanceXElement.Nodes().ToArray());

私はinstanceXElementに正確にフェッチしたいHTMLコードだけを持っていました。

于 2010-12-03T10:40:36.533 に答える