首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML XSLT结果-文档fseek

XML XSLT结果-文档fseek
EN

Stack Overflow用户
提问于 2012-09-16 15:47:11
回答 1查看 355关注 0票数 1

使用XSLT转换,我希望将XML文件转换为HTML文件,该文件又表示另一个文件的不同块,其中包含指向所表示文件的链接。

输入XML文件:

代码语言:javascript
复制
<File>
  <Name>foo.jpg<Name>
  <Chunk>
      <Offset>200</Offset>
      <Length>100</Length>
      <Data>
          <![CDATA[data bytes, encoded in base64, can be greater than length 100 too, but first 100 decoded bytes are valid.]]>
      </Data>
  </Chunk>
  <Chunk>
  ...
</File>

输出应该是一个html文件,该文件具有到foo.jpg的有效链接,即有另一个称为"foo.jpg“的隐式输出文件,其中包含来自块中cdata部分的数据,位于其指定的偏移量。

代码语言:javascript
复制
<html>
   <body>
      <a href="http://example.com/images/foo.jpg">file</a>
   </body>
</html>

Related question

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-17 04:58:08

此XSLT2.0转换

代码语言:javascript
复制
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/*">

  <xsl:document>
        <html>
           <body>
              <a href="http://example.com/images/{Name}">file</a>
           </body>
        </html>
  </xsl:document>

  <xsl:result-document href="file:///c:/temp/delete/{Name}" method="text">
    <xsl:apply-templates select="Chunk">
     <xsl:sort select="Offset" data-type="number"/>
    </xsl:apply-templates>
  </xsl:result-document>
 </xsl:template>

 <xsl:template match="Chunk">
  <xsl:value-of select="substring(Data, 1, Length)"/>
 </xsl:template>
</xsl:stylesheet>

当应用于此XML文档(具有两个块)时,

代码语言:javascript
复制
<File>
  <Name>foo.jpg</Name>
  <Chunk>
      <Offset>200</Offset>
      <Length>100</Length>
      <Data>A01234567891234567890234567890134567890124567890123567890123467890123457890123456890123456790123456780123456789</Data>
  </Chunk>
  <Chunk>
      <Offset>1</Offset>
      <Length>200</Length>
      <Data>Z0123456789123456789023456789013456789012456789012356789012346789012345789012345689012345679012345678012345678901234567891234567890234567890134567890124567890123567890123467890123457890123456890123456790123456780123456789</Data>
  </Chunk>
</File>

生成所需的、正确的结果

代码语言:javascript
复制
<html>
   <body><a href="http://example.com/images/foo.jpg">file</a></body>
</html>

创建的文件:c:\temp\delete\foo.jpg具有正确的所需内容:

代码语言:javascript
复制
Z0123456789123456789023456789013456789012456789012356789012346789012345789012345689012345679012345678012345678901234567891234567890234567890134567890124567890123567890123467890123457890123456890123456A012345678912345678902345678901345678901245678901235678901234678901234578901234568901234567901234567
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12445238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档