XElement添加样式

时间:2013-04-04 11:52:57

标签: c# asp.net xelement

我试图拥有一个样式的XElement:

<g style="fill-opacity:0.7">

所以我这样做:

XElement root = new XElement("g");
root.SetAttributeValue("style",
                from attributes in Child.Attributes
                where char.IsUpper(attributes.Key[0]) & !attributes.Value.ToString().StartsWith(transformNS)
                select new XAttribute("style", attributes.Key + ":" + attributes.Value));

但我拥有的是

<g style="System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Collections.Generic.KeyValuePair`2[System.String,System.Object],System.Xml.Linq.XAttribute]">
有人可以帮帮我吗?

最好的问候

1 个答案:

答案 0 :(得分:0)

那是因为您正在选择一个完整的XAttribute作为属性的值。 您需要遍历您的属性并将它们概念化为字符串。然后使用此字符串作为属性的值。

这样的事情:

XElement root = new XElement("g");
IEnumerable<string> styleprops = from attributes in Child.Attributes
                                 where char.IsUpper(attributes.Key[0]) & !attributes.Value.ToString().StartsWith(transformNS)
                                 select attributes.Key + ":" + attributes.Value

string value = string.empty;

foreach(string prop in styleprops){
    value += prop + ";";
}

root.SetAttributeValue("style", value);