recherche
Maisondéveloppement back-endTutoriel XML/RSSExemple de code pour convertir XML en HTML à l'aide de xlst

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

<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>




Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Création de documents RSS: un tutoriel étape par étapeCréation de documents RSS: un tutoriel étape par étapeApr 13, 2025 am 12:10 AM

Les étapes pour créer un document RSS sont les suivantes: 1. Écrivez au format XML, avec l'élément racine, y compris les éléments. 2. Ajouter, etc. Éléments pour décrire les informations du canal. 3. Ajouter des éléments, chacun représentant une entrée de contenu, y compris ,,,,,,,,,,,,. 4. Ajouter éventuellement et des éléments pour enrichir le contenu. 5. Assurez-vous que le format XML est correct, utilisez des outils en ligne pour vérifier, optimiser les performances et tenir le contenu à jour.

Rôle de XML dans RSS: le fondement du contenu syndiquéRôle de XML dans RSS: le fondement du contenu syndiquéApr 12, 2025 am 12:17 AM

Le rôle central de XML dans RSS est de fournir un format de données standardisé et flexible. 1. La structure et les caractéristiques du langage de balisage de XML le rendent adapté à l'échange et au stockage des données. 2. RSS utilise XML pour créer un format standardisé pour faciliter le partage de contenu. 3. L'application de XML en RSS comprend des éléments qui définissent le contenu des aliments, tels que le titre et la date de sortie. 4. Les avantages incluent la normalisation et l'évolutivité, et les défis incluent des exigences de syntaxe verbeux et strictes de documents. 5. Les meilleures pratiques incluent la validation de la validité XML, la maintenance simple, l'utilisation des CDATA et la mise à jour régulièrement.

De XML au contenu lisible: démystifier les flux RSSDe XML au contenu lisible: démystifier les flux RSSApr 11, 2025 am 12:03 AM

RSSFeedsArexMLDocuments utilisé pour la contention de la variabilité et la distribution.

Existe-t-il une alternative RSS basée sur JSON?Existe-t-il une alternative RSS basée sur JSON?Apr 10, 2025 am 09:31 AM

JSONFeed est une alternative RSS basée sur JSON qui a ses avantages simplicité et facilité d'utilisation. 1) JSONFeed utilise le format JSON, qui est facile à générer et à analyser. 2) Il prend en charge la génération dynamique et convient au développement Web moderne. 3) L'utilisation de JSONFeed peut améliorer l'efficacité de la gestion du contenu et l'expérience utilisateur.

Outils de document RSS: Flux de construction, de validation et d'éditionOutils de document RSS: Flux de construction, de validation et d'éditionApr 09, 2025 am 12:10 AM

Comment construire, valider et publier RSSFeeds? 1. Build: Utilisez des scripts Python pour générer RSSFeed, y compris le titre, le lien, la description et la date de sortie. 2. Vérification: utilisez FeedValidator.org ou Python Script pour vérifier si RSSFeed est conforme aux normes RSS2.0. 3. Publier: Télécharger les fichiers RSS sur le serveur, ou utiliser Flask pour générer et publier RSSFeed dynamiquement. Grâce à ces étapes, vous pouvez gérer et partager efficacement le contenu.

Sécuriser vos flux XML / RSS: une liste de contrôle de sécurité complèteSécuriser vos flux XML / RSS: une liste de contrôle de sécurité complèteApr 08, 2025 am 12:06 AM

Méthodes pour garantir la sécurité de XML / RSSFeeds incluent: 1. Vérification des données, 2. Transmission cryptée, 3. Contrôle d'accès, 4. Journaux et surveillance. Ces mesures protègent l'intégrité et la confidentialité des données via des protocoles de sécurité du réseau, des algorithmes de chiffrement des données et des mécanismes de contrôle d'accès.

XML / RSS Interview Questions & Answers: Augmentez votre expertiseXML / RSS Interview Questions & Answers: Augmentez votre expertiseApr 07, 2025 am 12:19 AM

XML est un langage de balisage utilisé pour stocker et transférer des données, et RSS est un format basé sur XML utilisé pour publier du contenu fréquemment mis à jour. 1) XML décrit les structures de données via des balises et des attributs, 2) RSS définit une publication spécifique de balises et un contenu souscrit, 3) XML peut être créé et analysé à l'aide des nœuds XML de Python pour les expressions XPATH qui peuvent être validés par XMllint, 7), le traitement des grands fichiers XML avec SAX Parser peut optimiser les performances.

Tutoriel Advanced XML / RSS: Ace votre prochain entretien techniqueTutoriel Advanced XML / RSS: Ace votre prochain entretien techniqueApr 06, 2025 am 12:12 AM

XML est un langage de balisage pour le stockage et l'échange de données, et RSS est un format basé sur XML pour la publication du contenu mis à jour. 1. XML définit les structures de données, adaptées à l'échange de données et au stockage. 2.RSS est utilisé pour l'abonnement de contenu et utilise des bibliothèques spéciales lors de l'analyse. 3. Lors de l'analyse du XML, vous pouvez utiliser DOM ou SAX. Lors de la génération de XML et de RSS, les éléments et les attributs doivent être définis correctement.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP