这是我的xml文件
ajax
,输出与此类似
<tag>
<ImageObject Color="BlackWhite" FileRef="12.gif" Format="GIF" Rendition="HTML" Type="Linedraw" />
<ImageObject Color="BlackWhite" FileRef="32.gif" Format="GIF" Rendition="HTML" Type="Linedraw"/>
<ImageObject Color="BlackWhite" FileRef="3.gif" Format="GIF" Rendition="HTML" Type="Linedraw"/>
</tag>
到目前为止,这是我的代码。但是我无法设置img的属性,因为我不知道如何检索fileref的属性
<tag>
<img src="12.gif" />
<img src="32.gif" />
<img src="3.gif" />
</tag>
答案 0 :(得分:3)
此时没有属性 - 它在上面删除了一行。相反,您可以使用以下内容:
foreach (XElement el in img)
{
var fileRef = el.Attribute("FileRef");
el.Name = "img";
el.RemoveAttributes();
el.SetAttributeValue("src", fileRef.Value);
}
答案 1 :(得分:1)
首先创建XElement对象并解析XML文件,然后将对象Enumerable(img)找到formate作为el,现在编写foreach循环以获取来自img(IEnumrable)和setAttributeValue的属性。所以最后你的代码看起来像。
XElement rootImg = XElement.Parse(xml string variable);
IEnumerable<XElement> img =
from el in rootImg.Descendants("ImageObject").ToList()
where (string)el.Attribute("Format") != ""
select el;
foreach (XElement el in img)
{
var fileRef = el.Attribute("FileRef");
el.Name = "img";
el.RemoveAttributes();
el.SetAttributeValue("src", fileRef.Value);
}