如何获取XML属性?

时间:2010-07-05 02:43:06

标签: c# .net linq-to-xml

鉴于此XML,如何重新检索HEX颜色?

<group>
    <span style="color:#DF0000; font-style: italic; font-weight: bold">Webmaster</span>
</group>

我需要检索样式中的所有内容。然后我可以使用String.Substring方法和.IndexOf()来检索我使用的颜色。

感谢您的帮助。

任何人都很好奇这是我最终的结果:

XElement str = doc.XPathSelectElement("/ipb/profile/group");                
                string color = str.Element("span").Attribute("style").Value;

                color = color.Substring(color.IndexOf('#'), 7);
                return color;

2 个答案:

答案 0 :(得分:2)

您可以使用LINQ-to-XML:

var elem = XElement.Parse(str);
var attr = elem.Element("span").Attribute("style").Value;

请注意,如果您的HTML格式不完整,则应考虑改为使用HTML Agility Pack

答案 1 :(得分:0)

我不确定文档的其余部分是什么样的,但希望这可以指出正确的方向。

    var node = xdoc.Descendants("group").Descendants("span").FirstOrDefault();

    string style = node.Attribute("style").Value;

    string[] styleElements = style.Split(';');

    var colorElements = from x in styleElements
                       where x.StartsWith("color", StringComparison.InvariantCultureIgnoreCase)
                       select x;

    string colorElement = (string)colorElements.FirstOrDefault();