将 XElement 的子元素转换为字符串

发布于 2024-09-06 21:59:17 字数 324 浏览 4 评论 0原文

可能的重复:
获取 XElement 的 InnerXml 的最佳方式?

我正在使用用于保存 HTML 服务器端块的 XElement。

我想将该 XElement 的子元素转换为字符串,有点像 javascript 中的“InnerHtml”属性。

有人可以帮我解决这个问题吗? :)

Possible Duplicate:
Best way to get InnerXml of an XElement?

I am using an XElement to hold a block of HTML serverside.

I would like to convert the children of that XElement into a string, sort of like an "InnerHtml" property does in javascript.

Can someone help me on this please? :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

苹果你个爱泡泡 2024-09-13 21:59:17

如果该元素仅包含其他元素,其他答案将起作用。如果您还想包含文本,则需要使用 Nodes() 而不是 Elements():

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

The other answers will work if the element only contains other elements. If you want to include text as well, you'll want to use Nodes() instead of Elements():

var result = string.Concat(element.Nodes());
凉城凉梦凉人心 2024-09-13 21:59:17

XElement 类没有提供直接获取元素“内部 XML”的方法。
您可以手动连接子元素,例如使用

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

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

The XElement class doesn't provide a method to directly get the "inner XML" of the element.
You can concatenate the child elements manually though, for example using

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

or

string result = string.Join(Environment.NewLine, element.Elements());
风柔一江水 2024-09-13 21:59:17

查看各种选项以及性能测试:获取 InnerXml 的最佳方式XElement 的?

您可能想为您的箭袋创建一个扩展方法,如下所示:

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

See a variety of options, with performance testing here: Best way to get InnerXml of an XElement?

You may want to create an extension method for your quiver as such:

/// <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();
}
笨笨の傻瓜 2024-09-13 21:59:17

foreach(Element.Elements() 中的 var 元素) {
yield 返回 element.ToString();
返回

带有字符串的 IEnumerable。

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

Returns an IEnumerable with strings.

恬淡成诗 2024-09-13 21:59:17

对我来说,它是这样工作的,多亏了 Quartermeister,

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

我的 instanceXElement 中只有 HTML 代码,我想准确地取出它。

For me it works like this, thanks to Quartermeister

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

I was having just HTML code in my instanceXElement that i wanted to fetch out exactly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文