这里非常新手(不到一周)。
我有一个从Altova StyleVision创建的样式表,我已经修改了它,因为它在StyleVision之外的浏览器中不起作用。关于"变量或参数‘altova:table’在同一范围内重复。"
不管怎样,除了一件事,它现在运行得很好。在格式化视图的末尾,所有的XML数据值都会在未格式化的情况下再次重复,只是在一行中喷出。
在发布到这里之前,我已经搜索了很多答案,但似乎以前没有人遇到过这种情况。
代码都在一个HTML标签中,看起来像这样:
<BODY>
<span style="font-family:Arial; font-size:18pt; font-weight:bold; vertical-align:middle; ">
<xsl:text>ENGINEERING CHANGE ORDER</xsl:text>
</span>
.............
<br/>
<span style="font-family:Arial; font-size:10pt; font-weight:bold; ">
<xsl:text>Summary:</xsl:text>
</span>
<pre>
<xsl:for-each select="Description">
<span style="font-family:Arial; font-size:10pt; ">
<xsl:apply-templates/>
</span>
</xsl:for-each>
</pre>
<hr/>
</xsl:for-each>
<xsl:apply-templates/>
</BODY>
这里不太清楚您想要实现什么。重新创建你的问题,我想你指的是输出是一个连续的字符串?
如果是这样,那么您使用的是HTML文档中不存在的名称空间和属性。一种更常见的方法是创建实际的样式表。Sample.xsl文件。保持与您提供的格式相对相同。这里有一个XSL文件,您可以使用DATA.xml文件进行解析。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xml:lang="en" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>
<xsl:value-of select="'Altova StyleVision'"/>
</title>
</head>
<BODY>
<span style="font-family:Arial; font-size:18pt; font-weight:bold; vertical-align:middle; ">
<xsl:text>ENGINEERING CHANGE ORDER</xsl:text>
</span>
.............
<br/>
<span style="font-family:Arial; font-size:10pt; font-weight:bold; ">
<xsl:text>Summary:</xsl:text>
</span>
<pre>
<span style="font-family:Arial; font-size:10pt; ">
<xsl:for-each select="document('DATA.xml')/profile/description">
<xsl:apply-templates select="value"/>
<xsl:if test="position() != last()">
<xsl:text disable-output-escaping="yes">
<![CDATA[<br />]]>
</xsl:text>
</xsl:if>
</xsl:for-each>
</span>
</pre>
<hr/>
</BODY>
</html>
</xsl:template>
我的示例DATA.xml包含:
<?xml version="1.0" encoding="UTF-8"?>
<profile>
<description>
<value>hi</value>
</description>
<description>
<value>world</value>
</description>
<description>
<value>i mean</value>
</description>
<description>
<value>hello</value>
</description>
<description>
<value>world</value>
</description>
</profile>
如果您使用的是基于Mac或Linux的操作系统。您可以打开终端并键入xsltproc sample.xsl DATA.xml > index.html
现在,它将解析一个HTML文件,供您以HTML形式查看。如果您使用的是Windows计算机,请转到此处:http://xmlsoft.org/XSLT/xsltproc2.html并下载xsltproc的副本,以便解析该内容。
如果您有创建的example.xml的副本,并且希望使用XSL显示数据。这是一个很好的方法,尤其是当XML文件中有很多内容时。