LINQ 多列
<root>
<data1>
<Element1>Value</Element1>
<Element2>Value</Element2>
<Element3>Value</Element3>
</data1>
<data2>
<Element1>Value</Element1>
<Element2>Value</Element2>
</data2>
</root>
从上面的 XML 中,我希望创建一个如下所示的 XML:
<root>
<d1e1>value<d1e1>
<d1e2>value<d1e2>
<d2e1>value<d2e1>
</root>
处理该问题最有效的方法是什么? Foreach 或 Linq 理论上在大多数情况下 Linq 应该更快,并且速度对于这个项目来说至关重要 有
什么想法吗?
<root>
<data1>
<Element1>Value</Element1>
<Element2>Value</Element2>
<Element3>Value</Element3>
</data1>
<data2>
<Element1>Value</Element1>
<Element2>Value</Element2>
</data2>
</root>
From the above XML I would like to make an XML looking like this:
<root>
<d1e1>value<d1e1>
<d1e2>value<d1e2>
<d2e1>value<d2e1>
</root>
What is the most efficient way to process that?
Foreach or Linq in theory Linq should be faster in most cases and speed is of the essence for this project
Any idea?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个想法是从 Y 池中选择 X 节点,这里的示例经过简化以向您展示问题。一般来说,就像我有一个多级 xml,我需要将其展开为只有一个子级别(又名 root + level1),但从源头来看,我只需要拥有我感兴趣的某些元素。
无论如何,这个问题已经解决了,因为我用 foreach 完成了它,因为我发现如果你在 xml 中指定了一个 shema,但无法访问 LINQ,那么无论如何都不想工作。
解决方案是这样的:
我做了一个函数:
我在重复的区域上做了一个 foreach 循环
我得到了以下元素使用上述函数,在重复上下文之外。
无论如何,这为我解决了它。
编辑:
不知道如何让此代码正确显示,因为 Ctrl+K 似乎可以做到这一点
The idea was to just select X nodes out of a pool of Y and the example here is simplified to show you the problem. In general it is like that I have a multi level xml that I needed to flat out to only have one sublevel (aka root + level1) but from the source I only need to have certain elements that are of interest to me.
Anyway the issiue is solved cos I done it with foreach cos I found out that if you have an shema specified in the xml but not accessable LINQ dosent whant to work anyway.
the solution was like this:
I made a function:
I made a foreach loop on the area that was repeating
I got the elements that where out of the repeating context with the above function.
Anyway that solved it for me.
Edit:
Don't know how to get this code to appear properly cos Ctrl+K dosent seem to do it