Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将html中的六进制代码转换为xml_Java_Xslt_Xslt 2.0 - Fatal编程技术网

Java 将html中的六进制代码转换为xml

Java 将html中的六进制代码转换为xml,java,xslt,xslt-2.0,Java,Xslt,Xslt 2.0,我正在使用xslt1.0将html转换为xml。这是我的html的一个片段: <span style="font-family: Wingdings;>  </span> 此XSLT 2.0解决方案: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchem

我正在使用xslt1.0将html转换为xml。这是我的html的一个片段:

<span style="font-family: Wingdings;>
        
  </span>

此XSLT 2.0解决方案:

<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns:my="my:my">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/*">
     <xsl:value-of select=
     "my:dec-to-hex(string-to-codepoints(normalize-space()))"/>
 </xsl:template>

 <xsl:variable name="vHexDigits" select="'0123456789ABCDEF'"/>

 <xsl:function name="my:dec-to-hex" as="xs:string">
  <xsl:param name="pDec" as="xs:integer"/>

  <xsl:variable name="vQuot" select="$pDec idiv 16"/>
  <xsl:variable name="vRemainder" select="$pDec mod 16"/>

  <xsl:sequence select=
   "if($pDec lt 16)
     then substring($vHexDigits, $pDec+1, 1)
     else
      concat(my:dec-to-hex($vQuot),
             substring($vHexDigits, $vRemainder+1, 1)
             )
   "/>

 </xsl:function>
</xsl:stylesheet>

好问题,+1。有关完整的XSLT2.0解决方案,请参见我的答案。谢谢。但是,我如何做或修改才能在xslt1.0中工作呢。如何从xslt1.0迁移到xslt2.0?@vignesh:xslt1.0解决方案需要外部源代码将UNICODE字符映射到代码点。我想有一个已经建了一些地方…一些地方意味着什么?。很抱歉,我没听清楚。@Alejandro:我不希望它是一个单一的整体文件,如果他们有这些XML格式的映射,我会感到惊讶(很高兴)。
<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns:my="my:my">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/*">
     <xsl:value-of select=
     "my:dec-to-hex(string-to-codepoints(normalize-space()))"/>
 </xsl:template>

 <xsl:variable name="vHexDigits" select="'0123456789ABCDEF'"/>

 <xsl:function name="my:dec-to-hex" as="xs:string">
  <xsl:param name="pDec" as="xs:integer"/>

  <xsl:variable name="vQuot" select="$pDec idiv 16"/>
  <xsl:variable name="vRemainder" select="$pDec mod 16"/>

  <xsl:sequence select=
   "if($pDec lt 16)
     then substring($vHexDigits, $pDec+1, 1)
     else
      concat(my:dec-to-hex($vQuot),
             substring($vHexDigits, $vRemainder+1, 1)
             )
   "/>

 </xsl:function>
</xsl:stylesheet>
<span style="font-family: Wingdings;">            </span>
F0D8