HTML:所有XML数据值在格式化文档下面显示为未格式化

HTML:所有XML数据值在格式化文档下面显示为未格式化,html,xml,xslt-1.0,Html,Xml,Xslt 1.0,非常新手(不到一周) 我有一个从Altova StyleVision创建的样式表,我对它进行了修改,因为它在StyleVision之外的浏览器中不起作用。关于“变量或参数‘altova:table’在同一范围内重复”的内容 不管怎样,它现在运行得很好,除了一件事。在格式化视图的末尾,所有XML数据值都会以未格式化的形式再次重复,只是在一个连续的行中输出 在这里发布之前,我已经搜索了一个又一个答案,但似乎没有人遇到过这个问题 代码都在HTML标记中,如下所示: <BODY>

非常新手(不到一周)

我有一个从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"?>
<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>

工程变更通知单
.............

总结: ]]>

My sample DATA.xml包含:


你好
世界
我是说
你好
世界
如果您使用的是基于Mac或Linux的操作系统。您可以打开终端并键入
xsltproc sample.xsl DATA.xml>index.html
。如果您使用的是Windows机器,请转到此处:下载一份xsltproc副本,以便可以解析该内容


如果您有创建的example.xml的副本,并且希望使用XSL显示数据。这是一个很好的方法。尤其是当XML文件中有大量内容时。

这看起来像XSLT。它应该通过XSLT处理器提供。您已经创建了“怪物”。它不再是纯HTML,也不再是XSLT。每件带有“xsl:”的东西都是XSLT,不会被浏览器“处理”。我发现我有很多东西要学。让我特别困惑的是,我基本上被告知这不应该按原样工作,但XML数据值在Internet Explorer和Firefox中显示得很好。只是重复xml数据值,文档末尾没有样式表格式。泰勒,你已经提供了最详细的信息,谢谢。我需要做的是回到起点,学习更多关于XSLT、HTML和解析器等的知识。我希望找到一个快捷方式解决问题。不幸的是,生活中很多事情都没有快捷方式解决。如果重复使用XML数据值,很可能是循环出错;和。应用模板和for基本上都是循环。您的嵌套循环可能就是创建重复值的原因。摆弄代码,学习它的唯一方法实际上就是玩它,我以XML/XSL编码为生,但还有很多东西需要学习。如果你需要一些帮助,你可以在这篇文章中添加更多内容。总是乐于助人。顺便说一句,XML数据几乎总是显示得很好,因为它只是原始数据。您的XSL使其“时尚”。把XML看作只是数据。XSL作为HTML和CSS的样式组合,XSLT作为XML和XSL到您想要的任何格式的转换。好的开始是从学校开始的。更深入的研究需要一本书,或者只是在网上查找其他人是如何编写代码的。如果您可以选择获取一些XML和XSL代码,摆弄它将有助于学习过程。与其他许多语言相比,它实际上是一种相当简单的样式语言。简历中的精彩补充,竖起大拇指!
<?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>