如何在XmlNodeList foreach中使用StartsWith

时间:2016-05-10 07:08:10

标签: xml c#-4.0

我有一个xml文件,其中的成员条目可用。我有一个像下面的xml,

XML格式

<Users>
  <User>
    <Id>1</Id>
    <Email1>abc@xyz.com</Email1>
    <EmailType1>W</EmailType1>
    <Email2>xyz@xyz.com</Email2>
    <EmailType2>H</EmailType2>      // Email and EmailType can be upto `n` times.
  </User>
  <User>
    <Id>2</Id>
    <Email1>lmn@xyz.com</Email1>
    <EmailType1>H</EmailType1>
    <Email2>bce@abc.com</Email2>
    <EmailType2>O</EmailType2>
  </User>
</Users>

我需要上面示例xml中的项目列表。我试图使用 XmlNodeList 循环以形成列表。我坚持在这里提取电子邮件列表。有

代码

public List<ImportProp> ReturnItmsList(XmlDocument xmlDoc)
{
    List<ImportProp> ListImport = new List<ImportProp>();
    XmlNodeList parentNode = xmlDoc.SelectNodes("Users/User");
    int cnt = 1;
    foreach (XmlNode childrenNode in parentNode)
    {
        ImportProp ppd = new ImportProp();
        ppd.BorrowId = (childrenNode["Id"] == null) ? "" : childrenNode["BorrowId"].InnerText;
    }
}

我感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这是一种可能的方式:

<table class="pagination-controle pagination">
 <tr>
     <td><button type="button" class="btn btn-primary" ng-disabled="curPage == 0"
         ng-click="curPage=curPage-1"> &lt; PREV</button></td>
     <td>Page {{curPage + 1}} of {{ numberOfPages() }}</td>
     <td><button type="button" class="btn btn-primary"
      ng-disabled="curPage >= datalists.length/pageSize - 1"
     ng-click="curPage = curPage+1">NEXT &gt;</button></td>
  </tr>
 </table>

您还可以在XPath中使用var result = childrenNode.SelectNodes("*") .Cast<XmlNode>() .Where(o => o.LocalName.StartsWith("EmailType")) .Select(o => new { email = o.PreviousSibling.InnerText, emailType = o.InnerText }) .ToList();

starts-with()