【发布时间】:2011-03-05 19:09:51
【问题描述】:
我正在使用 XElement 来保存 HTML 服务器端的块。
我想将该 XElement 的子元素转换为字符串,有点像 javascript 中的“InnerHtml”属性。
有人可以帮我解决这个问题吗? :)
【问题讨论】:
标签: c# xml xhtml innerhtml xelement
我正在使用 XElement 来保存 HTML 服务器端的块。
我想将该 XElement 的子元素转换为字符串,有点像 javascript 中的“InnerHtml”属性。
有人可以帮我解决这个问题吗? :)
【问题讨论】:
标签: c# xml xhtml innerhtml xelement
如果元素仅包含其他元素,则其他答案将起作用。如果您还想包含文本,则需要使用 Nodes() 而不是 Elements():
var result = string.Concat(element.Nodes());
【讨论】:
XElement 类不提供直接获取元素“内部 XML”的方法。
您可以手动连接子元素,例如使用
string result = string.Concat(element.Elements());
或
string result = string.Join(Environment.NewLine, element.Elements());
【讨论】:
查看各种选项,在此处进行性能测试:Best way to get InnerXml of an XElement?
您可能想为您的 quiver 创建一个扩展方法:
/// <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(Element.Elements() 中的变量元素) { 产量返回元素.ToString(); }
返回一个带字符串的 IEnumerable。
【讨论】:
感谢 Quartermeister,对我来说是这样的
string result = string.Concat(instanceXElement.Nodes().ToArray());
我的 instanceXElement 中只有 HTML 代码,我想准确地取出它。
【讨论】: