2.0 xml
说到2.0中的xml,功能还是很强大的,对于我而言,最主要功能就是利用它绘制表格了,在不进行编辑和修改的条件下,速度远远还是比gridview速度来的要快多了。
         
xml绘制表格或自己想绘制的格式主要有两种方式,一种是写*.xml文件和*.xsl文件组合,另一种是用自己写的xml字符串和*.xsl组合 进行绘制。
实例最能让初学者得到理解,不多说了。
 <?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8" ?>

 <GetBusyCellTopN>
<GetBusyCellTopN>
 <Row>
    <Row>
 <Region>南京</Region>
        <Region>南京</Region>
 <Section>六合县</Section>
        <Section>六合县</Section>
 <Cell>1区</Cell>
        <Cell>1区</Cell>
 <Traffic>23.2</Traffic>
        <Traffic>23.2</Traffic>
 <TrafficPerCh>12</TrafficPerCh>
        <TrafficPerCh>12</TrafficPerCh>
 </Row>
    </Row>
 <Row>
    <Row>
 <Region>南京</Region>
        <Region>南京</Region>
 <Section>六合县</Section>
        <Section>六合县</Section>
 <Cell>2区</Cell>
        <Cell>2区</Cell>
 <Traffic>23.2</Traffic>
        <Traffic>23.2</Traffic>
 <TrafficPerCh>12</TrafficPerCh>
        <TrafficPerCh>12</TrafficPerCh>
 </Row>
    </Row>
 <Row>
    <Row>
 <Region>南京</Region>
        <Region>南京</Region>
 <Section>六合县</Section>
        <Section>六合县</Section>
 <Cell>3区</Cell>
        <Cell>3区</Cell>
 <Traffic>23.2</Traffic>
        <Traffic>23.2</Traffic>
 <TrafficPerCh>12</TrafficPerCh>
        <TrafficPerCh>12</TrafficPerCh>
 </Row>
    </Row>
 <Row>
    <Row>
 <Region>南京</Region>
        <Region>南京</Region>
 <Section>六合县</Section>
        <Section>六合县</Section>
 <Cell>4区</Cell>
        <Cell>4区</Cell>
 <Traffic>23.2</Traffic>
        <Traffic>23.2</Traffic>
 <TrafficPerCh>12</TrafficPerCh>
        <TrafficPerCh>12</TrafficPerCh>
 </Row>
    </Row>
 <Row>
    <Row>
 <Region>南京</Region>
        <Region>南京</Region>
 <Section>六合县</Section>
        <Section>六合县</Section>
 <Cell>5区</Cell>
        <Cell>5区</Cell>
 <Traffic>23.2</Traffic>
        <Traffic>23.2</Traffic>
 <TrafficPerCh>12</TrafficPerCh>
        <TrafficPerCh>12</TrafficPerCh>
 </Row>
    </Row>
 </GetBusyCellTopN>
</GetBusyCellTopN>
接下来是.xsl文件
 <?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>

 <xsl:stylesheet version="1.0"
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="/GetBusyCellTopN">
<xsl:template match="/GetBusyCellTopN">
 <fieldset>
        <fieldset>
 <legend>超忙小区前10名</legend>
            <legend>超忙小区前10名</legend>
 <table style="width: 99%; background-color:#CCCCCC;" cellspacing="1" cellpadding="2" border="0">
            <table style="width: 99%; background-color:#CCCCCC;" cellspacing="1" cellpadding="2" border="0">
 <tr style="font-weight:bold;">
                <tr style="font-weight:bold;">
 <td class="tdHeadbg_gray" align="center" noWrap="true">地区</td>
                    <td class="tdHeadbg_gray" align="center" noWrap="true">地区</td>
 <td class="tdHeadbg_gray" align="center" noWrap="true">县分</td>
                    <td class="tdHeadbg_gray" align="center" noWrap="true">县分</td>
 <td class="tdHeadbg_gray" align="center" noWrap="true">小区</td>
                    <td class="tdHeadbg_gray" align="center" noWrap="true">小区</td>
 <td class="tdHeadbg_gray" align="center" noWrap="true">话务量</td>
                    <td class="tdHeadbg_gray" align="center" noWrap="true">话务量</td>
 <td class="tdHeadbg_gray" align="center" noWrap="true">每线话务量</td>
                    <td class="tdHeadbg_gray" align="center" noWrap="true">每线话务量</td>
 </tr>
                </tr>
 <xsl:for-each select="child::Row">
                <xsl:for-each select="child::Row">
 <tr>
                    <tr>
 <td class="tdbg_gray" style="background-color:#E6E6FA; "  align="right" noWrap="true">
                        <td class="tdbg_gray" style="background-color:#E6E6FA; "  align="right" noWrap="true">
 <xsl:value-of select="Region"/>
                            <xsl:value-of select="Region"/>
 </td>
                        </td>
 <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
                        <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
 <xsl:value-of select="Section"/>
                            <xsl:value-of select="Section"/>
 </td>
                        </td>
 <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
                        <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
 <xsl:value-of select="Cell"/>
                            <xsl:value-of select="Cell"/>
 </td>
                        </td>
 <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
                        <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
 <xsl:value-of select="Traffic"/>
                            <xsl:value-of select="Traffic"/>
 </td>
                        </td>
 <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
                        <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
 <xsl:value-of select="TrafficPerCh"/>
                            <xsl:value-of select="TrafficPerCh"/>
 </td>
                        </td>
 </tr>
                    </tr>
 </xsl:for-each>
                </xsl:for-each>
 </table>
            </table>
 </fieldset>
        </fieldset>
 </xsl:template>
    </xsl:template>

 </xsl:stylesheet>
</xsl:stylesheet> 
 
 <div>
<div>
 <asp:Xml ID="Xml1" runat="server" DocumentSource="GetBusyCellTopN.xml" TransformSource="GetBusyCellTopN.xsl"></asp:Xml>
    <asp:Xml ID="Xml1" runat="server" DocumentSource="GetBusyCellTopN.xml" TransformSource="GetBusyCellTopN.xsl"></asp:Xml>
 </div>
</div>
 /// <summary>
/// <summary>
 /// 绑定Xml数据按照预定格式输出
    /// 绑定Xml数据按照预定格式输出
 /// </summary>
    /// </summary>
 /// <param name="strXml">xml数据流</param>
    /// <param name="strXml">xml数据流</param>
 private void BoundXmlToHtml(System.Web.UI.WebControls.Xml xml,string strXml)
    private void BoundXmlToHtml(System.Web.UI.WebControls.Xml xml,string strXml)
 {
    {
 try
        try
 {
        {
 XmlDocument doc = new XmlDocument();
            XmlDocument doc = new XmlDocument();
 TextReader strReader = new StringReader(strXml);
            TextReader strReader = new StringReader(strXml);
 doc.Load(strReader);
            doc.Load(strReader);

 XslTransform xsTran = new XslTransform();
            XslTransform xsTran = new XslTransform();    
 xsTran.Load(Server.MapPath(@"Xml/GetBusyIdleCell.xsl"));
            xsTran.Load(Server.MapPath(@"Xml/GetBusyIdleCell.xsl"));

 xml.Document = doc;
            xml.Document = doc;
 xml.Transform = xsTran;
            xml.Transform = xsTran;
 }
        }
 catch (Exception ex)
        catch (Exception ex)
 {
        {
 Console.WriteLine(ex.Message);
            Console.WriteLine(ex.Message);
 }
        }
 }
    }
xml绘制表格或自己想绘制的格式主要有两种方式,一种是写*.xml文件和*.xsl文件组合,另一种是用自己写的xml字符串和*.xsl组合 进行绘制。
实例最能让初学者得到理解,不多说了。
 <?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8" ?>
 <GetBusyCellTopN>
<GetBusyCellTopN> <Row>
    <Row> <Region>南京</Region>
        <Region>南京</Region> <Section>六合县</Section>
        <Section>六合县</Section> <Cell>1区</Cell>
        <Cell>1区</Cell> <Traffic>23.2</Traffic>
        <Traffic>23.2</Traffic> <TrafficPerCh>12</TrafficPerCh>
        <TrafficPerCh>12</TrafficPerCh> </Row>
    </Row> <Row>
    <Row> <Region>南京</Region>
        <Region>南京</Region> <Section>六合县</Section>
        <Section>六合县</Section> <Cell>2区</Cell>
        <Cell>2区</Cell> <Traffic>23.2</Traffic>
        <Traffic>23.2</Traffic> <TrafficPerCh>12</TrafficPerCh>
        <TrafficPerCh>12</TrafficPerCh> </Row>
    </Row> <Row>
    <Row> <Region>南京</Region>
        <Region>南京</Region> <Section>六合县</Section>
        <Section>六合县</Section> <Cell>3区</Cell>
        <Cell>3区</Cell> <Traffic>23.2</Traffic>
        <Traffic>23.2</Traffic> <TrafficPerCh>12</TrafficPerCh>
        <TrafficPerCh>12</TrafficPerCh> </Row>
    </Row> <Row>
    <Row> <Region>南京</Region>
        <Region>南京</Region> <Section>六合县</Section>
        <Section>六合县</Section> <Cell>4区</Cell>
        <Cell>4区</Cell> <Traffic>23.2</Traffic>
        <Traffic>23.2</Traffic> <TrafficPerCh>12</TrafficPerCh>
        <TrafficPerCh>12</TrafficPerCh> </Row>
    </Row> <Row>
    <Row> <Region>南京</Region>
        <Region>南京</Region> <Section>六合县</Section>
        <Section>六合县</Section> <Cell>5区</Cell>
        <Cell>5区</Cell> <Traffic>23.2</Traffic>
        <Traffic>23.2</Traffic> <TrafficPerCh>12</TrafficPerCh>
        <TrafficPerCh>12</TrafficPerCh> </Row>
    </Row> </GetBusyCellTopN>
</GetBusyCellTopN>接下来是.xsl文件
 <?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
 <xsl:stylesheet version="1.0"
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="/GetBusyCellTopN">
<xsl:template match="/GetBusyCellTopN"> <fieldset>
        <fieldset> <legend>超忙小区前10名</legend>
            <legend>超忙小区前10名</legend> <table style="width: 99%; background-color:#CCCCCC;" cellspacing="1" cellpadding="2" border="0">
            <table style="width: 99%; background-color:#CCCCCC;" cellspacing="1" cellpadding="2" border="0"> <tr style="font-weight:bold;">
                <tr style="font-weight:bold;"> <td class="tdHeadbg_gray" align="center" noWrap="true">地区</td>
                    <td class="tdHeadbg_gray" align="center" noWrap="true">地区</td> <td class="tdHeadbg_gray" align="center" noWrap="true">县分</td>
                    <td class="tdHeadbg_gray" align="center" noWrap="true">县分</td> <td class="tdHeadbg_gray" align="center" noWrap="true">小区</td>
                    <td class="tdHeadbg_gray" align="center" noWrap="true">小区</td> <td class="tdHeadbg_gray" align="center" noWrap="true">话务量</td>
                    <td class="tdHeadbg_gray" align="center" noWrap="true">话务量</td> <td class="tdHeadbg_gray" align="center" noWrap="true">每线话务量</td>
                    <td class="tdHeadbg_gray" align="center" noWrap="true">每线话务量</td> </tr>
                </tr> <xsl:for-each select="child::Row">
                <xsl:for-each select="child::Row"> <tr>
                    <tr> <td class="tdbg_gray" style="background-color:#E6E6FA; "  align="right" noWrap="true">
                        <td class="tdbg_gray" style="background-color:#E6E6FA; "  align="right" noWrap="true"> <xsl:value-of select="Region"/>
                            <xsl:value-of select="Region"/> </td>
                        </td> <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
                        <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true"> <xsl:value-of select="Section"/>
                            <xsl:value-of select="Section"/> </td>
                        </td> <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
                        <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true"> <xsl:value-of select="Cell"/>
                            <xsl:value-of select="Cell"/> </td>
                        </td> <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
                        <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true"> <xsl:value-of select="Traffic"/>
                            <xsl:value-of select="Traffic"/> </td>
                        </td> <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true">
                        <td class="tdbg_gray" style="background-color:#E6E6FA; " align="right" noWrap="true"> <xsl:value-of select="TrafficPerCh"/>
                            <xsl:value-of select="TrafficPerCh"/> </td>
                        </td> </tr>
                    </tr> </xsl:for-each>
                </xsl:for-each> </table>
            </table> </fieldset>
        </fieldset> </xsl:template>
    </xsl:template>
 </xsl:stylesheet>
</xsl:stylesheet> 
            aspx文件,这里不做太多描述,就是随便在一个div里拽一个xml,然后设置好数据源和解释文件的路径就ok了。
 <div>
<div> <asp:Xml ID="Xml1" runat="server" DocumentSource="GetBusyCellTopN.xml" TransformSource="GetBusyCellTopN.xsl"></asp:Xml>
    <asp:Xml ID="Xml1" runat="server" DocumentSource="GetBusyCellTopN.xml" TransformSource="GetBusyCellTopN.xsl"></asp:Xml> </div>
</div>一行代码都不用写,运行就ok了,这个图表不是很好看,能力有限,不过一定有人会画的很漂亮。
第二种方法:没有了GetBusyCellTopN.xml文件,代之的是String 类型的字符串,在这我就不把字符串内容写出来了,你把.xml文件内容完整的用字符串输出就好了。在.aspx文件中不用设置DocumentSource 和 TransformSource了,在这里用代码实现其中的部分。
.cs文件内容:
 /// <summary>
/// <summary> /// 绑定Xml数据按照预定格式输出
    /// 绑定Xml数据按照预定格式输出 /// </summary>
    /// </summary> /// <param name="strXml">xml数据流</param>
    /// <param name="strXml">xml数据流</param> private void BoundXmlToHtml(System.Web.UI.WebControls.Xml xml,string strXml)
    private void BoundXmlToHtml(System.Web.UI.WebControls.Xml xml,string strXml) {
    { try
        try {
        { XmlDocument doc = new XmlDocument();
            XmlDocument doc = new XmlDocument(); TextReader strReader = new StringReader(strXml);
            TextReader strReader = new StringReader(strXml); doc.Load(strReader);
            doc.Load(strReader);
 XslTransform xsTran = new XslTransform();
            XslTransform xsTran = new XslTransform();     xsTran.Load(Server.MapPath(@"Xml/GetBusyIdleCell.xsl"));
            xsTran.Load(Server.MapPath(@"Xml/GetBusyIdleCell.xsl"));
 xml.Document = doc;
            xml.Document = doc; xml.Transform = xsTran;
            xml.Transform = xsTran; }
        } catch (Exception ex)
        catch (Exception ex) {
        { Console.WriteLine(ex.Message);
            Console.WriteLine(ex.Message); }
        } }
    }是不是觉得很简单,其实大部分时间还是花在了怎样设计.xml 和 .xsl 上了,要先学会xpath哦!
 
 
                    
                

 
         
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号