繁体   English   中英

如何在xmlreader中使用IN

[英]How to use IN with xmlreader

如何使用IN(,,,)xmlreader来获取特定节点。

private static IEnumerable<DayNode> ReadDayNodes(string filePath)
        {
            using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
            using (XmlReader xrdr = new XmlTextReader(fs))
                while (xrdr.Read())
                    if (xrdr.NodeType == XmlNodeType.Element && xrdr.LocalName == "day")
                        yield return new DayNode(xrdr.GetAttribute("name"), xrdr.GetAttribute("short"), xrdr.GetAttribute("day"));
        }

如果我有字符串列表。 像这样 :

List<string> names = new new List<string>();

我想只得到上一个列表中的name节点。怎么样?

你的意思是,元素的本地名称不是“日”所必需的,而是在列表中?

if(xrdr.NodeType == XmlNodeType.Element && names.Contains(xrdr.LocalName))

编辑以下评论:

if (xrdr.NodeType == XmlNodeType.Element && xrdr.LocalName == "day")
  foreach(string localName in names)
  {
    string attVal = xrdr.GetAttribute(localName);
    if(attVal != null)
    //we could just yield return attVal, but presuming we want to know which attribute it was on:
     yield return Tuple.Create(localName, attVal);
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM