零代码读取XML数据

        首先声明:读取XML数据并不需要零代码实现,如果用DataSet同样可以读取。比如:

        

            //DataSet dsFailSystem = new DataSet();
            //string FailSystemfilepath = Server.MapPath("../XMLFile/FailSystem.xml");
            //dsFailSystem.ReadXml(FailSystemfilepath);          

            //this.dpFailSystem.DataSource = dsFailSystem;
            //this.dpFailSystem.DataMember = "FailSystem";
            //this.dpFailSystem.DataTextField = "FailSystemName";
            //this.dpFailSystem.DataValueField = "FailSystemName";           
            //this.dpFailSystem.DataBind();

 

           这样一段代码足够把XML的数据读取出来,并且在DropDownList显示出来。但是这种写代码还是有点问题:比如用户不愿意输入这么多代码、并且容易出错。所以在此对代码实现不多介绍,只介绍零代码如何实现读取XML数据。

 

           步骤如下:

           1、书写XML文件,如下:

<?xml version="1.0" encoding="utf-8" ?>
<FailCurrectWayDataSet>
  <FailCurrectWay>
    <FailCurrectWayName>更换</FailCurrectWayName>
  </FailCurrectWay>
  <FailCurrectWay>
    <FailCurrectWayName>修理</FailCurrectWayName>
  </FailCurrectWay>
  <FailCurrectWay>
    <FailCurrectWayName>改进设计</FailCurrectWayName>
  </FailCurrectWay>
  <FailCurrectWay>
    <FailCurrectWayName>其他方式</FailCurrectWayName>
  </FailCurrectWay>
</FailCurrectWayDataSet>

2、如果是GridView控件,可以直接在选择数据库的时候选择XML文件,然后选择刚刚新建的XML文件。在写个XPath:/FailCurrectWayDataSet/FailCurrectWay即可。

3、如果是DropDownList控件,写XPath是没有用的,页面会提示错误。找不到XPath,此时需要另外一个文件:XSL文件做转化文件,如下:

<?xml version="1.0" encoding="utf-8"?>

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

  <xsl:template match="FailCurrectWayDataSet">
    <FailCurrectWayDataSet>
      <xsl:apply-templates select="FailCurrectWay"/>
    </FailCurrectWayDataSet>
  </xsl:template>
  <xsl:template match="FailCurrectWay">
    <FailCurrectWay>
      <xsl:attribute name="FailCurrectWayName">
        <xsl:apply-templates select="FailCurrectWayName"/>
      </xsl:attribute>
    </FailCurrectWay>
  </xsl:template>
</xsl:stylesheet>

4、有了这个文件,用户在选择XML文件后,然后选择转化文件即可,此时无须写XPath。

5、最后选择DataTextField以及DataValueField即可。

你可能感兴趣的:(xml,数据库,XSL,encoding,dataset,stylesheet)