使用docx4j解析某些XSL XML文件时,我不断收到此错误:
'元素类型“img”必须由匹配的结束标记
中的异常错误"</img>"
终止。 Docx4JException'
我尝试过各种各样的组合来解决这个问题,但除了在img
标签之间添加一些文字之外似乎没什么用处。我不希望文本显示。还有什么可以做的吗?
这是造成错误的xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:prettyprint="http://xml.apache.org/xslt" xmlns:xalan="http://xml.apache.org/xalan" version="1.0">
<xsl:output method="html" />
<!-- Main entry template -->
<xsl:template match="Email">
<html>
<body>
<img width="100" height="100" src="http://thumbs.dreamstime.com/x/sun-logo-6350903.jpg" border="0" class="MyImage" />
<div style="font-family:Verdana, Arial; font-size:9.5pt; font-weight:normal">
<xsl:variable name="PTPTotalAmt" select="Issue_PTPTotalAmount_C" />
<xsl:variable name="LetterDate" select="LetterDate" />
<xsl:variable name="LtrDate" select="substring($LetterDate, 1, 11)" />
<br>
<xsl:text />
</br>
<xsl:value-of select="Contact_Title_R" />
<xsl:text />
<xsl:value-of select="Contact_LastName_X" />
<br>
<xsl:text />
</br>
<xsl:value-of select="Contact_DispAddrLine1_X" />
<br>
<xsl:text />
</br>
<xsl:value-of select="Contact_DispAddrLine3_X" />
<br>
<xsl:text />
</br>
<xsl:value-of select="Contact_DispAddrLine4_X" />
<br>
<xsl:text />
</br>
<xsl:value-of select="Contact_DispAddrLine5_X" />
<br>
<xsl:text />
</br>
<xsl:value-of select="Contact_DispAddrPostCode_X" />
<br>
<xsl:text />
</br>
<xsl:text />
<xsl:text />
<xsl:value-of select="$LtrDate" />
</div>
<br>
<xsl:text />
</br>
<br>
<xsl:text />
</br>
<br>
<xsl:text />
</br>
<br>
<xsl:text />
</br>
<div style="font-family:Verdana, Arial; font-size:8.5pt; font-weight:normal">
<br>
<xsl:text>Address Here</xsl:text>
</br>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:4)
将您的xsl:output
元素更改为输出XML:
<xsl:output method="xml" indent="yes"/>
(indent="yes"
部分不是必需的,但有助于阅读输出。)
如果仅xsl:output method="xml"
更改不起作用,请尝试明确关闭img
元素。因此,请使用<img/>
:
<img></img>
<img width="100" height="100" src="http://thumbs.dreamstime.com/x/sun-logo-6350903.jpg" border="0" class="MyImage"></img>
解释:HTML播放快速且松散的结束标记。 docx4j 的下游处理需要正确终止的元素,当您指定<xsl:output method="xml"/>
时,XSLT将生成正确终止的元素。
答案 1 :(得分:3)
如果你想添加图片,并且经常要求关闭标签,你就这样写:
<img src="abc"/>
答案 2 :(得分:0)
这有效!!像这样
,只需将关闭标签添加到Img标签即可<img src=""/>