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 HannenSystem.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属性)