我有一些xml:
<Response TaskId="2429">
<message>Run for cover.</message>
<element location="proj\survival.cs"/>
<element location="proj\run.cs"/>
</Response>
我想为每个项目添加一个属性:
<element location="proj\run.cs" status="running"/>
C#中的LINQ可以实现吗? 谢谢任何提示...
答案 0 :(得分:0)
不确定。请参阅以下链接:http://www.hookedonlinq.com/LINQtoXML5MinuteOverview.ashx
XElement xml = new XElement( "Response",
new XAttribute( "TaskId", "2429" ),
new XElement( "message", "Run for cover" ),
new XElement( "element",
new XAttribute( "location", "proj\survival.cs" ),
new XAttribute( "status", "running" ) ),
new XElement( "element",
new XAttribute( "location", "proj\run.cs" ),
new XAttribute( "status", "running" ) ) );
您可以在上面看到它使用嵌套调用构建XML结构。您需要做的就是将“新属性”调用作为LINQ结构的一部分来生成新属性。
更新:如果要向查询结果添加属性,请执行以下操作:
var query = from node in xml.Descendants( "element" )
select node;
foreach( var element in query )
{
element.SetAttributeValue( "status", "running" );
}