Html 评估及;lt&;燃气轮机;在XML中+;XSL(也称双重解析)

Html 评估及;lt&;燃气轮机;在XML中+;XSL(也称双重解析),html,xml,xslt,escaping,evaluate,Html,Xml,Xslt,Escaping,Evaluate,我刚刚用一个导出应用程序将我的整个LiveJournal博客导出到一个XML文件。这样做的原因是为了将其全部存档并为后代保存。我想为它制作一个简单的布局文件,这样我就可以阅读帖子并充满怀旧。它看起来像任何常规XML文件: <livejournal> <entry> <itemid>1</itemid> <eventtime>Date/time</eventtime> <subject>

我刚刚用一个导出应用程序将我的整个LiveJournal博客导出到一个XML文件。这样做的原因是为了将其全部存档并为后代保存。我想为它制作一个简单的布局文件,这样我就可以阅读帖子并充满怀旧。它看起来像任何常规XML文件:

<livejournal>
  <entry>
    <itemid>1</itemid>
    <eventtime>Date/time</eventtime>
    <subject>Subject Line</subject>
    <event>The actual post</event>
    <allowmask>0</allowmask>
    <current_mood>current mood</current_mood>
    <current_music>current mood</current_music>
    <taglist>comma, separated, tags</taglist>
    <comment>
      <itemid>2433</itemid>
      <eventtime>Date</eventtime>
      <subject>Subject Line</subject>
      <event>The actual comment</event>
      <author>
        <name>Commenter</name>
        <email>Commenter@email</email>
      </author>
    </comment>
  </entry>
  <entry>
</livejournal>

1.
日期/时间
主题行
实际职位
0
当前情绪
当前情绪
逗号、分隔符、标记
2433
日期
主题行
实际评论
评论员
Commenter@email
到目前为止,一切都很好。当我尝试为它创建xsl文件时,问题就出现了。xml文件中的标记不仅包含文本,还包含HTML。在引导方面,HTML是2004年编写的,由各种各样的meme生成器生成。所以代码的计算值不高。我们看到可爱的标签和吨未关闭的img,输入,br和hr标签

当前导出已将所有内容替换为,因此它将作为xml文件进行计算。我想做的是能够查看包含所有预期HTML标记的XML文件。这让事情变得大胆。但是我不知道怎么做,因为b/b没有正确评估

<event>I ate a &lt;b&gt;tasty&lt;/b&gt; cucumber</event>
我吃了一个b早餐/b黄瓜
输出

我吃了一根美味的黄瓜

而不是

我吃了一根美味的黄瓜

有没有办法绕过这个问题?由于更改了xml文件中的所有lt、gt,使其由于错误的HTML而无法计算。而且我不想通过700多篇文章来让东西手工正确评估。

A
就可以了

XSLT示例:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">

    <xsl:template match="/">
        <html>
            <head></head>
            <body>                
                <xsl:apply-templates select="*"/> 
            </body>
        </html>
    </xsl:template>

    <xsl:template match="*">
        <xsl:apply-templates select="*"/>
    </xsl:template>

    <xsl:template match="event">
        <div class="event">
            <xsl:value-of select="." disable-output-escaping="yes"/>                        
        </div>
    </xsl:template>

</xsl:stylesheet>

运行于:

<livejournal>
    <entry>
        <itemid>1</itemid>
        <eventtime>Date/time</eventtime>
        <subject>Subject Line</subject>
        <event>I ate a &lt;b&gt;tasty&lt;/b&gt; cucumber</event>
        <allowmask>0</allowmask>
        <current_mood>current mood</current_mood>
        <current_music>current mood</current_music>
        <taglist>comma, separated, tags</taglist>
        <comment>
            <itemid>2433</itemid>
            <eventtime>Date</eventtime>
            <subject>Subject Line</subject>
            <event>The actual comment</event>
            <author>
                <name>Commenter</name>
                <email>Commenter@email</email>
            </author>
        </comment>
    </entry>
</livejournal>

1.
日期/时间
主题行
我吃了一根b脆/b黄瓜
0
当前情绪
当前情绪
逗号、分隔符、标记
2433
日期
主题行
实际评论
评论员
Commenter@email
结果:

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   </head>
   <body>
      <div class="event">I ate a <b>tasty</b> cucumber</div>
      <div class="event">The actual comment</div>
   </body>
</html>

我吃了一根美味的黄瓜
实际评论

它不适用于Chrome和FireFox,但适用于internet explorer!如果我能以某种方式看它,我会很高兴,所以它对我来说很有用。非常感谢你的帮助!您正在尝试将其作为本地文件运行吗?如果是这样的话,您可能会遇到同源策略()。您可能需要从Chrome和Firefox的服务器上运行该策略才能进行解析。我还没有在那里尝试过,它是用saxon和xalan测试的。我在这里建立了一个快速的Web服务器(node.js)来为xml页面提供服务,完成后,它在chrome上运行良好,但在firefox上不起作用。在firefox上,当在inspector中查找时,它看起来解析得很好,只是不知道如何渲染(这一定是firefox中xsl渲染器的问题)。