C# 如何转换IEnumerable<;XElement>;串

C# 如何转换IEnumerable<;XElement>;串,c#,asp.net,xml-parsing,C#,Asp.net,Xml Parsing,我有一个字符串,其中包含一些我想要操作的数据,所以我将它发送给一个执行此操作的函数 我想在他得到函数中的操作后返回那个字符串 我要做的是在他获得操作后,从包含正确内容的函数返回IEnumerable 我试图返回xmlElements.ToString()来自函数,但它包含一些奇怪的字符串,而不是它本身的实际字符串 RenderOutput=XML结构中的字符串 这只是函数功能的一个示例: public IEnumerable<XElement> SetAdditionalData(I

我有一个字符串,其中包含一些我想要操作的数据,所以我将它发送给一个执行此操作的函数

我想在他得到函数中的操作后返回那个字符串

我要做的是在他获得操作后,从包含正确内容的函数返回
IEnumerable

我试图返回
xmlElements.ToString()来自函数,但它包含一些奇怪的字符串,而不是它本身的实际字符串

RenderOutput=XML结构中的字符串

这只是函数功能的一个示例:

public IEnumerable<XElement> SetAdditionalData(IEnumerable<XElement> xmlElements, string docID, int i, string orderID)
{
    foreach (var el in xmlElements)
    {
        // set country name from country iso
        if (el.Name == "Country")
        {                                      
                var isoC = el.Value.ToString().Trim();
                if (isoC != string.Empty)
                {
                    RegionInfo isoCode = new RegionInfo(isoC);
                    el.SetValue(isoCode.DisplayName);
                }
                continue;                    
        }
    }

    return xmlElements;  // tried to return xmlElements.ToSting(), but it didn't returned the right data
}
public IEnumerable SetAdditionalData(IEnumerable xmlElements、字符串docID、int i、字符串orderID)
{
foreach(xmlElements中的var el)
{
//从国家/地区iso设置国家/地区名称
如果(el.Name==“国家”)
{                                      
var isoC=el.Value.ToString().Trim();
if(isoC!=字符串.空)
{
RegionInfo等代码=新的RegionInfo(isoC);
el.SetValue(等码显示名称);
}
继续;
}
}
return xmlements;//试图返回xmlements.ToSting(),但未返回正确的数据
}
我正在努力做到这一点:

xmlElements将在操作后包含字符串-意思是在
SetAdditionalData()之后

return String.Concat(xmlElements.Select(element => element.OuterXml));
不管怎样,我只返回元素——这样函数只做一件事,修改元素。然后,如果调用者需要字符串,它可以将元素转换为字符串。

请尝试以下选项: 如果内容是文本,则获取元素的内容:

xmlElements.Value
以XML形式获取元素的内容:

xmlElements.InnerXml
xmlElements.OuterXml
以XML形式获取元素及其内容:

xmlElements.InnerXml
xmlElements.OuterXml

@Henk我期待
XML字符串
@Henk,问我提到的问题-我正在寻找
xmlElements.ToSting()
这三个参数都不起作用,我收到一个错误,例如:
“System.Collections.Generic.IEnumerable”不包含“Value”的定义,并且找不到接受“System.Collections.Generic.IEnumerable”类型的第一个参数的扩展方法“Value”(是否缺少using指令或程序集引用?)
在调用方中迭代列表后,您将获得这些值。不能直接在IEnumerable对象上获取这些值。请参考@Scott Hannen post。将其添加到文件顶部:using System.Linq@Scott Hannen
System.Linq已经存在-但错误出现。我收到此错误:
“System.Collections.Generic.IEnumerable”不包含“Select”的定义,并且找不到接受“System.Collections.Generic.IEnumerable”类型的第一个参数的扩展方法“Select”(是否缺少using指令或程序集引用?)
上没有属性OuterXml。要从IEnumerable获取XML,只需调用如下内容:
var XML=string.Concat(xmlements)
var XML=string.Join(“\r\n”,xmlements)
XElement
XmlNode
继承
OuterXml
。这对我来说很有效,返回string.Concat(xmlements.Select(element=>element.ToString())
XmlElement
继承自
XmlNode
,而
XElement
继承自
XNode
(它没有@chviLadislav指出的OuterXml属性)