Linq to Xml Query 获取 email list

先将DataSet内容保存到一个xml文件中,该xml文件如下:

XML file list
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eA1</RespProductDivisionNo>
<Email>yanze.zhu@advantech.com.cn</Email>
<RespProductDivision>WebAccess Solution</RespProductDivision>
<PostnID>1-1R7CMF</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eA2</RespProductDivisionNo>
<Email>shouting.zhang@advantech.com.cn</Email>
<RespProductDivision>ADAM</RespProductDivision>
<PostnID>1-MHW3A</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eA3</RespProductDivisionNo>
<Email>shouting.zhang@advantech.com.cn</Email>
<RespProductDivision>Ind. I/O</RespProductDivision>
<PostnID>1-EE885O</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eA4</RespProductDivisionNo>
<Email>deng.bin@advantech.com.cn</Email>
<RespProductDivision>PAC</RespProductDivision>
<PostnID>1-EJBZST</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eA5</RespProductDivisionNo>
<Email>yaguang.zhu@advantech.com.cn</Email>
<RespProductDivision>Ind. Comm.</RespProductDivision>
<PostnID>1-PTWFN</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eA6</RespProductDivisionNo>
<Email>daniel.hsu@advantech.com.cn</Email>
<RespProductDivision>HMI</RespProductDivision>
<PostnID>1-DHYMW</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eA7</RespProductDivisionNo>
<Email>sun.wei@advantech.com.cn</Email>
<RespProductDivision>UNO</RespProductDivision>
<PostnID>1-EEWY31</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eA8</RespProductDivisionNo>
<Email>shouting.zhang@advantech.com.cn</Email>
<RespProductDivision>CN/IO</RespProductDivision>
<PostnID>1-J3UY30</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP1</RespProductDivisionNo>
<Email>rover.chen@advantech.com</Email>
<RespProductDivision>CFD-A/N</RespProductDivision>
<PostnID>1-DHZDN</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP10</RespProductDivisionNo>
<Email>yubo.qiao@advantech.com.cn</Email>
<RespProductDivision>Microsoft &amp; Emb SW</RespProductDivision>
<PostnID>1-DHYTZ</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP11</RespProductDivisionNo>
<Email>zhao.long@advantech.com.cn</Email>
<RespProductDivision>CFD-B</RespProductDivision>
<PostnID>1-FOB3M</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP12</RespProductDivisionNo>
<Email>jianping.xiao@advantech.com.cn</Email>
<RespProductDivision>SOM</RespProductDivision>
<PostnID>1-DHYUJ</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP14</RespProductDivisionNo>
<Email>yi.you@advantech.com.cn</Email>
<RespProductDivision>Small Form Factor</RespProductDivision>
<PostnID>1-EEWYDL</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP15</RespProductDivisionNo>
<Email>yi.you@advantech.com.cn</Email>
<RespProductDivision>MIO Extension</RespProductDivision>
<PostnID>1-EEWYDX</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP16</RespProductDivisionNo>
<Email>yi.you@advantech.com.cn</Email>
<RespProductDivision>PC/104</RespProductDivision>
<PostnID>1-DHYUO</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP24</RespProductDivisionNo>
<Email>xiaofeng.ou@advantech.com.cn</Email>
<RespProductDivision>RISC</RespProductDivision>
<PostnID>1-I6NW2N</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP25</RespProductDivisionNo>
<Email>tommy.chen@advantech.com.cn</Email>
<RespProductDivision>AIMB</RespProductDivision>
<PostnID>1-EJ3PXR</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP26</RespProductDivisionNo>
<Email>xiaofeng.ou@advantech.com.cn</Email>
<RespProductDivision>Peripherals &amp; Modules</RespProductDivision>
<PostnID>1-HBYFZT</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP3</RespProductDivisionNo>
<Email>zuoru.shi@advantech.com.cn</Email>
<RespProductDivision>IMC</RespProductDivision>
<PostnID>1-EEWY9Y</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP4</RespProductDivisionNo>
<Email>tommy.chen@advantech.com.cn</Email>
<RespProductDivision>ATX IMB</RespProductDivision>
<PostnID>1-EE8QL0</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP41</RespProductDivisionNo>
<Email>tommy.chen@advantech.com.cn</Email>
<RespProductDivision>CN/ES</RespProductDivision>
<PostnID>1-J3UY2N</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP5</RespProductDivisionNo>
<Email>tommy.chen@advantech.com.cn</Email>
<RespProductDivision>IPC &amp; SIS</RespProductDivision>
<PostnID>1-EQ93II</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP6</RespProductDivisionNo>
<Email>tommy.chen@advantech.com.cn</Email>
<RespProductDivision>Slot SBC</RespProductDivision>
<PostnID>1-MOQKC</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP8</RespProductDivisionNo>
<Email>zuoru.shi@advantech.com.cn</Email>
<RespProductDivision>Panel PC</RespProductDivision>
<PostnID>1-EEWYAA</PostnID>
</ACNPSM>
<ACNPSM>
<RespOrg>ACN PSM</RespOrg>
<RespProductDivisionNo>eP9</RespProductDivisionNo>
<Email>tommy.chen@advantech.com.cn</Email>
<RespProductDivision>Embedded BPC</RespProductDivision>
<PostnID>1-EEWYAM</PostnID>
</ACNPSM>
</DocumentElement>

由于email有重复,如何获取email 清单,并把重复的去掉,代码如下:

View Code
    protected void Page_Load(object sender, EventArgs e)
{
string xmlFile = Server.MapPath("PSMList.xml");
XDocument doc = XDocument.Load(xmlFile);

var matches = from e1 in doc.Root.Descendants("Email") select (string)e1;

string result = string.Empty;
foreach (string s in matches.Distinct())
{
result = result == "" ? s : result + ";" + s;
}

gridTitles.DataSource = matches.Distinct();
gridTitles.DataBind();

}

如何将DataSet或者DataTable的内容写入xml,只需要使用ds.WriteXml就可以了。

        string xmlFile = Server.MapPath("PSMList.xml");
        resultDataTable.WriteXml(xmlFile, XmlWriteMode.IgnoreSchema);



原文地址:https://www.cnblogs.com/zhoukaiwei/p/2293491.html