C#数据库入门-007:使用XML

来源:互联网 发布:知敬畏是什么意思 编辑:程序博客网 时间:2024/05/28 11:49

一:介绍
    SELECT查询返回的结果为行集。通过在查询中指定FOR XML子句,可以检索XML形式的SQL查询结果。
    FOR XML 子句将查询结果集转换为XML结构,它提供了四种模式:
    FOR XML RAW
    FOR XML AUTO
    FOR XML PATH
    FOR XML EXPLICIT

二:使用FOR XML RAW模式
    1: SELECT * FROM CUSTOMERS
        FOR XML RAW;
        <row customerid="ALFKI" companyname="Alfreds Futterkiste" />
        <row customerid="ANATR" companyname="Ana Trujillo Emparedados y helados" />
    2: SELECT customerid, companyname FROM CUSTOMERS
        FOR XML RAW, ELEMENTS;//以元素为中心
        <row>
          <customerid>ALFKI</customerid>
          <companyname>Alfreds Futterkiste</companyname>
        </row>
        <row>
          <customerid>ANATR</customerid>
          <companyname>Ana Trujillo Emparedados y helados</companyname>
        </row>
    3: SELECT customerid, companyname FROM CUSTOMERS
        FOR XML RAW('dataelement'), ELEMENTS;//修改ROW元素名称
        <dataelement>
          <customerid>ALFKI</customerid>
          <companyname>Alfreds Futterkiste</companyname>
        </dataelement>
        <dataelement>
          <customerid>ANATR</customerid>
          <companyname>Ana Trujillo Emparedados y helados</companyname>
        </dataelement>
    4: 特点
        A: 不提供根节点。
        B: 支持以属性为中心和以元素为中心的格式,所有列必须以同样的方式格式化。
        C: 生成一个层次结构,在这个层次结构中,素有元素属于同一级别。

三:使用FOR XML AUTO
    1: SELECT c1.customerid, c1.companyname, c2.customerid, c2.companyname
        FROM CUSTOMERS c1, customers c2
        FOR XML AUTO;
        <c1 customerid="ALFKI" companyname="Alfreds Futterkiste">
          <c2 customerid="ALFKI" companyname="Alfreds Futterkiste" />
        </c1>
        <c1 customerid="ANATR" companyname="Ana Trujillo Emparedados y helados">
          <c2 customerid="ALFKI" companyname="Alfreds Futterkiste" />
        </c1>
    2: 特点
        A: 不提供根节点。
        B: 支持以属性为中心和以元素为中心的格式,所有列必须以同样的方式格式化。
        C: 不提供重命名机制。

原创粉丝点击