首先,对不起我的英语,这有点生锈。 我是这里的新手,花了一天的时间找到解决方案后,终于在这里提出了我的问题。 我必须使用XSLT将XML文件转换为HTML文件。 我从匹配“ body”节点的模板开始,然后显示html。
我的问题是在我的XML中,我在html标记中添加了html标记+文本内容,例如:
<text1>
<p>*content*<i>*content*</i>*content*</p>
</text1>
由于可能有多个<text1>
节点,因此我有一个<xsl: for-each select="text1>
,我添加了另一个xsl:for-each以显示<p>
标签。
此方法有效,但是我的<i>
中没有<p>
标记。
再次这是我的第一个问题,我希望我的问题清楚。
谢谢。
编辑:我尝试使用模板,但现在输出未显示html特殊字符:“ Sbastien”应显示“Sébastien”。 dtd可用于XML解析器。我正在使用libxslt。
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE article SYSTEM "wk-presse.dtd">
<article id="BC102400301">
<head>
...
</head>
<body>
<titre>
Un rôle à jouer durant le quinquennat
</titre>
<texte1>
<p>
La France a donc un nouveau président en la personne d’Emmanuel Macron. Un président jeune, entreprenant, économiste et résolument européen...
</p>
<p>
Plus que jamais le transport sera donc la clé du succès économique, pourvu que les transporteurs s’appliquent à eux-mêmes ces principes d’innovation et de remise en question. Les pistes sont nombreuses: digitalisation, services, interconnexions, énergies durables, accessibilités… Pourvu qu’il s’éloigne de l’image surannée du transport collectif du XX
<sup>
<sup>
e
</sup>
siècle
</sup>
, le transport routier de voyageurs moderne a donc un beau rôle à jouer durant les cinq prochaines années.
</p>
</texte1>
</body>
</article>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html"
encoding="UTF-8"
indent="yes"
/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="titre">
<div class="titre">
<xsl:apply-templates select="@* | node()"/>
</div>
</xsl:template>
<xsl:template match="texte1">
<div class="texte1">
<xsl:apply-templates select="@* | node()"/>
</div>
</xsl:template>
<xsl:template match="p">
<div class="al">
<xsl:apply-templates select="@* | node()"/>
</div>
</xsl:template>
<xsl:template match="i">
<div class="italique">
<xsl:apply-templates select="@* | node()"/>
</div>
</xsl:template>
<xsl:template match="sup">
<div class="sup">
<xsl:apply-templates select="@* | node()"/>
</div>
</xsl:template>
<xsl:template match="article">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Titre du document</title>
<link rel="stylesheet" type="text/css" href="common.css" />
<link rel="stylesheet" type="text/css" href="presseCommerciale.css" />
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="functions.js"></script>
</head>
<body>
<!-- START CONTENT -->
<div class="ud-presseCommerciale">
<div class="article">
<div class="head">
<div class="pub">Bus & Car</div>
<div class="rub">
<div class="inserted-text">Rubrique : </div>
<xsl:value-of select="head/rub"/></div>
<div class="auteur">
<div class="inserted-text">Auteur(s) : </div>
<div class="fonction default"><xsl:value-of select="head/auteur/fonction"/></div>
<div class="aut"><xsl:value-of select="head/auteur/aut"/></div>
</div>
</div>
<div class="body">
<xsl:apply-templates/>
</div>
</div>
</div>
<!-- END CONTENT -->
</body>
</html>
</xsl:template>
我现在遇到的问题是在输出中删除了HTML特殊字符。 希望我的代码更清楚。