重複の可能性:
XElementのInnerXmlを取得する最良の方法は?
XElementを使用してHTMLサーバーサイドのブロックを保持しています。
そのXElementの子を、javascriptの「InnerHtml」プロパティのように文字列に変換したいと思います。
誰かがこれについて私を助けてくれますか?:)
要素に他の要素のみが含まれている場合、他の回答が機能します。テキストも含める場合は、Elements()の代わりにNodes()を使用することをお勧めします。
var result = string.Concat(element.Nodes());
XElementクラスは、要素の「内部XML」を直接取得するためのメソッドを提供しません。
ただし、子要素を手動で連結することはできます。たとえば、
string result = string.Concat(element.Elements());
また
string result = string.Join(Environment.NewLine, element.Elements());
ここでパフォーマンステストを使用して、さまざまなオプションを参照してください。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();
}
foreach(var element in Element.Elements()){yield return element.ToString(); }
文字列を含むIEnumerableを返します。
私にとっては、Quartermeisterのおかげでこのように機能します
string result = string.Concat(instanceXElement.Nodes().ToArray());
私はinstanceXElementに正確にフェッチしたいHTMLコードだけを持っていました。