LINQ to XML

    技术2022-05-20  39

    LINQ最大的好处是LINQ to XML,我觉得。

    先引入System.Xml.Linq命名空间,其中常用的属性就是XElement。

    LINQ基于DOM方式来操作XML,意思就是将XML文件在内存中构造成DOM树,然后来进行操作,将XML加载到内存两种方法。

    1:将XML文件加载到内存。  XElement  xml1 = XElement.Load(Server.MapPath("book.xml"));

    2:构造XML树。

    XElement xml2 = new XElement("People", 

    new XElement("Name", new XAttribute("中文", "哈哈") //这里只有一个后括号

    new XElement("Age", "18"),

    new XElement("Sex", "男")

    ),

    new XElement("Name", new XAttribute("中文", "呵呵") //这里只有一个后括号

    new XElement("Age", "19"),

    new XElement("Sex", "女")

    )

    );

     

    这时构造出来的XML树结构为

    <People>

    <Name 中文="哈哈">

    <Age>18</Age>

    <Sex>男</Sex>

    </Name>

    <Name 中文="呵呵">

    <Age>19</Age>

    <Sex>女</Sex>

    </Name>

    </People>

     

    然后用LINQ来查找

    IEnumerable<XElement> name =

    from ele in xml2.Elements("Name")

    where (string)ele.Attribute("中文")=="哈哈" //有一个转换

    select ele ;

     

    //这时的LINQ表达式仅仅是一个表达式,并无结果。只有要引用LINQ表达式的结果时,LINQ表达式才会执行,查询出结果。

     

    foreach ( XElement x in name)

    {

    Response.Write(Server.HtmlEnCode(x.Element("Age"));

    }

     

    //运行结果为18

     

    由于XML中有"<"和">"符号,所以要用HtmlEncode来预处理结果。实际ele的结果是一个XML子元素

    <Name 中文="哈哈">

    <Age>18</Age>

    <Sex>男</Sex>

    </Name>

     


    最新回复(0)