查找具有特定属性名称和值的XElement

时间:2016-04-20 16:07:09

标签: xml

我正在使用XML文件。

    <?xml version="1.0" encoding="utf-8" ?>
    <Help>
      <P_Types>
        <P_Type id="My_id">
              <Commands>
                  <Command id="cmd1">"cmd1" will execute first command.</Command>
                  .
                  .
              </Commands>
              <flds>
                  <fld id="fld1">Enter fld1</fld>
                  <fld id="NEW_FLD">Enter NEW_FLD.</fld>
                  .
                  .
              </flds>
        </P_Type>
        <P_Type id="another_id>
            <commands>
                <command id="XMZ">
                  .
                  .
            </command>
            <flds>
                <fld id="ABC">...... </fld>
                  .
                  .
            <flds>
        </P_Type>
      </P_Types>        
    </Help>

我的代码正在返回我的fld id和命令id。我需要“P_Type的id,我要检查是否(P_type ==”My_id“)。如果是,那么将采取action1 else action2。

我的代码当前代码如下。 帮助将受到高度赞赏。 htHelp&amp; htCmdHelp声明为Hashtable

HelpCollection hlpCol = null;
IEnumerable<XElement> helpLs = from helpEls in xml.Descendants("P_Type") select helpEls;
if (helpLs.Count() > 0)
    foreach (XElement el in helpLs)
    {
        if (el.HasElements)
        {
            hlpCol = new HelpCollection();
            foreach (XElement v in el.Elements("flds").Elements())
                hlpCol.htHelp.Add(v.Attribute("id").Value, v.Value);
            foreach (XElement c in el.Elements("Commands").Elements())
                hlpCol.htCmdHelp.Add(c.Attribute("id").Value, c.Value);
            helpColl.Add(el.Attribute("id").Value, hlpCol);
       }
   }

0 个答案:

没有答案