使用xlst将xml转换html的示例代码

互联网 17-3-20
xml文件
<?xml version="1.0" encoding="utf-8" ?>  <Paper Title="小寒考试系统" Name="大三历史期末考试" Start  Time  ="2008-1-28 09:00" Time="120" ScoreValue="100" Score="0">        <Student Name="小寒" Id="041124096"/>       <Questions Title="单选题" ScoreValue="20"   Count  ="1" Score="0">      <DanXuan Id="1" Subject="历史" Chapter="第三章" D  if  ficulty="1"  ScoreValue="20" Score="0">        <Content>诸葛亮姓什么?</Content>        <Choices>          <Choice   Key  ="1">诸</Choice>          <Choice Key="2">诸葛</Choice>          <Choice Key="3">诸葛亮</Choice>          <Choice Key="4">亮</Choice>        </Choices>        <Answer>2</Answer>        <StudentAnswer></StudentAnswer>      </DanXuan>    </Questions>    <Questions Title="多选题" ScoreValue="20" Count="1" Score="0">      <DuoXuan Id="2" Subject="历史" Chapter="第三章" Difficulty="1"  ScoreValue="20" Score="0">        <Content>三国是指那三国?</Content>        <Choices>          <Choice Key="1">魏国</Choice>          <Choice Key="2">吴国</Choice>          <Choice Key="3">辽国</Choice>          <Choice Key="4">蜀国</Choice>        </Choices>        <Answer>1,2,4</Answer>        <StudentAnswer></StudentAnswer>      </DuoXuan>    </Questions>        <Questions Title="判断题" ScoreValue="20" Count="1" Score="0">      <PanDuan Id="3" Subject="历史" Chapter="第三章" Difficulty="1"  ScoreValue="20" Score="0">        <Content>刘备建立了蜀国?</Content>        <Choices>          <Choice Key="0">0</Choice>          <Choice Key="1">1</Choice>        </Choices>        <Answer>1</Answer>        <StudentAnswer></StudentAnswer>      </PanDuan>    </Questions>            <Questions Title="填空题" ScoreValue="20" Count="1" Score="0">      <TianKong Id="4" Subject="历史" Chapter="第三章" Difficulty="1"  ScoreValue="20" Score="0">        <Content> <![CDATA[        三国里的五虎上将是指关羽,$_4.1_$,$_4.2_$,$_4.3_$,赵云。         ]]>      </Content>        <Answers>          <Answer Key="1">张飞</Answer>          <Answer Key="2">魏延</Answer>          <Answer Key="3">马超</Answer>        </Answers>        <StudentAnswers>          <StudentAnswer Key="1"></StudentAnswer>          <StudentAnswer Key="2"></StudentAnswer>          <StudentAnswer Key="3"></StudentAnswer>        </StudentAnswers>      </TianKong>    </Questions>    <Questions Title="  简答题  " ScoreValue="20" Count="1" Score="0">      <JianDa Id="5" Subject="历史" Chapter="第三章" Difficulty="1"  ScoreValue="20" Score="0">        <Content>为什么诸葛亮没能统一三国?</Content>        <Answer>因为魏国统一了三国。</Answer>        <StudentAnswer></StudentAnswer>      </JianDa>    </Questions>  </Paper>

xslt文件

<?xml version="1.0" encoding="UTF-8" ?>  <xsl:stylesheet version="1.0"     xmlns:xsl="http://www.w3.org/1999/XSL/Trans  for  m"    xmlns:msxsl="urn:schemas-microsoft-com:xslt"    xmlns:rules="http://www.netguy.cn/xslt"     exclude-result-prefixes="rules msxsl">        <xsl:output method="html"/>    <msxsl:script implements-prefix="rules"   lang  uage="  C#  ">      <![CDATA[      public   static     string   ChangeTextBox(string content)      {                // Define a regular expression for repeated w  ord  s.          Regex rx =   new   Regex(@"\$_\S\S\S_\$",            RegexOptions.Compiled | RegexOptions.IgnoreCase);          // Find matches.          MatchCollection matches = rx.Matches(content);          // Report on   each   match.            foreach   (Match match in matches)          {              string word = match.Value;                           content=content.Replace(word,"<input name=\""+word.  Substr  ing(2,word.Length-4)+"\" type=\"text\">");          }            return   content;                }      ]]>    </msxsl:script>    <xsl:template match="Paper">      <html xmlns="http://www.w3.org/1999/xhtml" >        <  head  >          <title>            <xsl:value-of select="@Title"/>          </title>        </head>        <body>          <p class="Head">            <p class="Name"><xsl:value-of select="@Name"/></p>            <p class="Info">              姓名:<xsl:value-of select="Student/@Name"/>              学号:<xsl:value-of select="Student/@Id"/>              开考时间:<xsl:value-of select="@StartTime"/>               时间:<xsl:value-of select="@Time"/>               总分:<xsl:value-of select="@ScoreValue"/>          </p>          </p>          <xsl:apply-templates select="Questions"/>        </body>      </html>    </xsl:template>        <xsl:template match="Questions">      <p class="Title">        <xsl:number format="I."/>        <xsl:value-of select="@Title"/>        <xsl:text>。(共</xsl:text>       <xsl:value-of select="@Count"/>        <xsl:text>题,</xsl:text>        <xsl:value-of select="@ScoreValue"/>        <xsl:text>分)</xsl:text>      </p>      <xsl:apply-templates select="DanXuan"/>      <xsl:apply-templates select="DuoXuan"/>      <xsl:apply-templates select="PanDuan"/>      <xsl:apply-templates select="TianKong"/>      <xsl:apply-templates select="JianDa"/>    </xsl:template>            <xsl:template match="DanXuan">        <p class="DanXuan">          <p class="Content">            <xsl:number format="1."/>            <xsl:value-of select="Content"/>          </p>          <p class="Choices">            <ul>              <xsl:for-each select="Choices/Choice">                <li>                  <xsl:number format="A."/>                  <input name="{http://www.cnblogs.com/@Id}" type="radio" value="{@Key}"/>                  <xsl:value-of select="."/>                </li>              </xsl:for-each>            </ul>          </p>        </p>    </xsl:template>    <xsl:template match="DuoXuan">      <p class="DuoXuan">        <p class="Content">          <xsl:number format="1."/>          <xsl:value-of select="Content"/>        </p>        <p class="Choices">          <ul>            <xsl:for-each select="Choices/Choice">              <li>                <xsl:number format="A."/>                <input name="{http://www.cnblogs.com/@Id}" type="checkbox" value="{@Key}"/>                <xsl:value-of select="."/>              </li>            </xsl:for-each>          </ul>        </p>      </p>    </xsl:template>    <xsl:template match="PanDuan">      <p class="PanDuan" style="  width  :  300  px">        <p class="Content" style="  float  :left  ;width:70%">          <xsl:number format="1."/>          <xsl:value-of select="Content"/>        </p>        <p class="Choices" style="float  :right  ;width:25%">          <input name="{@Id}" type="radio" value="1"/>Y          <input name="{@Id}" type="radio" value="0" />N        </p>      </p>    </xsl:template>    <xsl:template match="TianKong">      <p class="TianKong">        <xsl:number format="1."/>        <xsl:value-of select="rules:ChangeTextBox(string(Content))" disable-output-esc  api  ng="yes"/>      </p>    </xsl:template>    <xsl:template match="JianDa">      <p class="JianDa">        <p class="Content">          <xsl:number format="1."/>          <xsl:value-of select="Content"/>        </p>        <p class="Input">          <textarea name="{@Id}" cols="70" rows="8"></textarea>        </p>      </p>    </xsl:template>  </xsl:stylesheet>
<html xmlns="http://www.w3.org/1999/xhtml">    <head>      <title>小寒考试系统</title>    </head>    <body>      <div class="Head">        <div class="Name">大三历史期末考试</div>        <div class="Info">              姓名:小寒              学号:041124096              开考时间:2008-1-28 09:00               时间:120               总分:100</div>      </div>      <div class="Title" xmlns="">I.单选题。(共1题,20分)</div>      <div class="DanXuan" xmlns="">        <div class="Content">1.诸葛亮姓什么?</div>        <div class="Choices">          <ul>            <li>A.<input name="1" type="radio" value="1">诸</li>            <li>B.<input name="1" type="radio" value="2">诸葛</li>            <li>C.<input name="1" type="radio" value="3">诸葛亮</li>            <li>D.<input name="1" type="radio" value="4">亮</li>          </ul>        </div>      </div>      <div class="Title" xmlns="">II.多选题。(共1题,20分)</div>      <div class="DuoXuan" xmlns="">        <div class="Content">1.三国是指那三国?</div>        <div class="Choices">          <ul>            <li>A.<input name="2" type="checkbox" value="1">魏国</li>            <li>B.<input name="2" type="checkbox" value="2">吴国</li>            <li>C.<input name="2" type="checkbox" value="3">辽国</li>            <li>D.<input name="2" type="checkbox" value="4">蜀国</li>          </ul>        </div>      </div>      <div class="Title" xmlns="">III.判断题。(共1题,20分)</div>      <div class="PanDuan" style="width:300px" xmlns="">        <div class="Content" style="float:left;width:70%">1.刘备建立了蜀国?</div>        <div class="Choices" style="float:right;width:25%"><input name="3" type="radio" value="1">Y          <input name="3" type="radio" value="0">N        </div>      </div>      <div class="Title" xmlns="">IV.填空题。(共1题,20分)</div>      <div class="TianKong" xmlns="">1.         三国里的五虎上将是指关羽,<input name="4.1" type="text">,<input name="4.2" type="text">,<input name="4.3" type="text">,赵云。               </div>      <div class="Title" xmlns="">V.简答题。(共1题,20分)</div>      <div class="JianDa" xmlns="">        <div class="Content">1.为什么诸葛亮没能统一三国?</div>        <div class="Input"><textarea name="5" cols="70" rows="8"></textarea></div>      </div>    </body>  </html>

以上就是使用xlst将xml转换html的示例代码的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:XML学习(三) js保存xml的示例代码分享

相关资讯