Linq to Xml示例

Xml文件:

<?xml version="1.0"?>
<Software xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Databases>
    <Database>
      <Name>Data</Name>
      <Password />
      <InitializeCommand />
      <Tables>
        <Table>
          <Name>DataTable</Name>
          <Columns>
            <Column>
              <Name>ID</Name>
              <Type>Int32</Type>
              <Comment />
            </Column>
            <Column>
              <Name>Name</Name>
              <Type>String</Type>
              <Comment />
            </Column>
            <Column>
              <Name>Meaning</Name>
              <Type>String</Type>
              <Comment />
            </Column>
            <Column>
              <Name>Important</Name>
              <Type>Int32</Type>
              <Comment />
            </Column>
          </Columns>
          <Comment />
        </Table>
      </Tables>
    </Database>
  </Databases>
  <DALNameSpace>WordsHelper.DAL</DALNameSpace>
  <ModelNameSpace>WordsHelper.Model</ModelNameSpace>
  <OutputDirectory>..\Library\</OutputDirectory>
</Software>

查询代码:

var cust = from c in XElement.Load("Last.xml")
                .Elements("Databases").Elements("Database")
                .Elements("Tables").Elements("Table")
                .Elements("Columns").Elements("Column")
            where c.Element("Name").Value == "Name"
            select c;
var x = cust.ToArray()[0].Element("Type").Value;

 简化的代码:

var x = XElement.Load("Last.xml")
    .Elements("Databases")
    .Elements("Database")
    .Elements("Tables")
    .Elements("Table")
    .Elements("Columns")
    .Elements("Column")
    .First(c => c.Element("Name").Value == "Name")
    .Element("Type")
    .Value;

 

posted on 2013-07-23 06:20  yao2yao4  阅读(202)  评论(0编辑  收藏  举报

导航