我试图拥有一个样式的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]">
有人可以帮帮我吗?
最好的问候
答案 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);