0

我试图拥有一个具有如下风格的 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]">

有人可以帮助我吗?

此致

4

1 回答 1

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);
于 2013-04-04T11:58:50.557 回答