2010-06-19 11 views

Antwort

24

Die anderen Antworten funktionieren, wenn das Element nur andere Elemente enthält. Wenn Sie auch schließen Text wollen, möchten Sie Knoten() anstelle der Elemente() verwenden:

var result = string.Concat(element.Nodes()); 
+0

Ich habe gerade dieses getestet, es hat perfekt funktioniert. Das war meine erste Frage zu Stack Overflow, ich bin sicherlich beeindruckt, wie schnell ich darauf antwortete. :) – Michael

+0

Funktioniert wie ein Zauber !!! –

3

Die XElement-Klasse bietet keine Methode, um direkt das "innere XML" des Elements zu erhalten. Verwendung

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

oder

string result = string.Join(Environment.NewLine, element.Elements()); 
0

foreach (var Element in Element.Elements()) { yield return element.ToString()
Sie können die untergeordneten Elemente manuell obwohl, zum Beispiel verketten; }

Gibt ein IEnumerable mit Zeichenfolgen zurück.

1

eine Vielzahl von Optionen anzeigen, mit Performance-Tests hier: Best way to get InnerXml of an XElement?

Sie möchten eine Erweiterungsmethode für Ihre Köcher als solche zu erstellen:

/// <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(); 
} 
0

für mich ist es wie das funktioniert, dank Quartermeister

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

Ich hatte gerade HTML-Code in meinem instanceXElement, den ich genau abrufen wollte.