3

我有一个类型的字符串string xml = @"<recurrence><rule><firstDayOfWeek>mo</firstDayOfWeek><repeat><daily dayFrequency=""1"" /></repeat><windowEnd>2012-10-31T10:00:00Z</windowEnd></rule></recurrence>";

我想读取这里的dayFrequency1,有没有办法可以直接dayFrequency在标签下读取daily,同样有很多这样的标签,例如a="1"、b="King"等,所以我想直接读取值分配给一个变量。

请帮忙。

我使用的以下代码读取重复标签

string xml = @"<recurrence><rule><firstDayOfWeek>mo</firstDayOfWeek><repeat><daily dayFrequency=""1"" /></repeat><windowEnd>2012-10-31T10:00:00Z</windowEnd></rule></recurrence>";

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);

// this would select all title elements
XmlNodeList titles = xmlDoc.GetElementsByTagName("repeat"); 
4

5 回答 5

3
XDocument xmlDoc = XDocument.Parse(xml);
var val = xmlDoc.Descendants("daily")
                .Attributes("dayFrequency")
                .FirstOrDefault();

这里 val 将是:

val = {dayFrequency="1"}

val.Value会给你1

于 2012-10-30T10:28:59.620 回答
2
XElement.Parse(xml).Descendants("daily")
                   .Single()
                   .Attribute("dayFrequency")
                   .Value;
于 2012-10-30T10:25:18.357 回答
1
XDocument xdoc = XDocument.Parse(@"<recurrence><rule><firstDayOfWeek>mo</firstDayOfWeek><repeat><daily dayFrequency=""1"" /></repeat><windowEnd>2012-10-31T10:00:00Z</windowEnd></rule></recurrence>");
        string result = xdoc
            .Descendants("recurrence")
            .Descendants("rule")
            .Descendants("repeat")
            .Descendants("daily")
            .Attributes("dayFrequency")
            .First()
            .Value;
于 2012-10-30T10:36:05.323 回答
0

您应该使用 getattribute()。

有关详细信息,请参阅:http: //msdn.microsoft.com/en-us/library/acwfyhc7.aspx

于 2012-10-30T10:25:40.723 回答
0
    var nodes = xmlDoc.SelectNodes(path);

    foreach (XmlNode childrenNode in nodes)
    {
        HttpContext.Current.Response.Write(childrenNode.SelectSingleNode("//repeat").Value);
    } 
于 2012-10-30T10:26:23.723 回答