我的问题很简单 我有两个xml文件和一个xsl文件使用java Transformer我需要创建html stringbuffer。我知道如何处理单个xml文件,我需要帮助才能使用两个xmls。
我的第一个xml
xml_1.xml(data xml)
<data>
<title>Mr</title>
<name>Peter</name>
</data>
我的第二个xml是
xml_2.xml(property xml)
<prop>
<lblname>Name</lblname>
<lbltitle>Title</lbltitle>
</prop>
我的xsl是
dispaly.xsl
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp " "><!ENTITY bull "•">]>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table width="100%" border="0" cellspacing="0" cellpadding="3" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px;">
<tr>
<td colspan="2"><xsl:value-of select="prop/lbltitle" /></td>
<td width="1"><xsl:value-of select="prop/lblname" /></td>
</tr>
<tr>
<td colspan="2"><xsl:value-of select="data/title" /></td>
<td width="1"><xsl:value-of select="data/namee" /></td>
</tr>
</table>
</xsl:template>
我需要的是使用java make将其转换为html文件,这是我用于单个xml文件的示例代码,
Java示例代码
TransformerFactory tFactory = TransformerFactory.newInstance();
StreamSource stylesource = new StreamSource(stylesheet);
Transformer transformer = tFactory.newTransformer(stylesource);
DOMSource source = new DOMSource(document);
Writer outWriter = new StringWriter();
StreamResult result = new StreamResult(outWriter);
transformer.transform(source, result);
我需要的是使用java make将其转换为html文件,这是我用于单个xml文件的示例代码,
答案 0 :(得分:1)
使用document()
功能在转换期间访问多个文档。为方便起见,下面的解决方案将文档存储在变量中,因为它们被多次使用。
请注意
output
方法设置为“html”namee
的元素colspan
元素的td
属性没有意义。仅当在另一行中有更多表格单元格可以跨越时才有用<强>样式表强>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp " "><!ENTITY bull "•">]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:variable name="data" select="document('data.xml')"/>
<xsl:variable name="property" select="document('property.xml')"/>
<xsl:template match="/">
<table width="100%" border="0" cellspacing="0" cellpadding="3" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px;">
<tr>
<td colspan="2"><xsl:value-of select="$property/prop/lbltitle" /></td>
<td width="1"><xsl:value-of select="$property/prop/lblname" /></td>
</tr>
<tr>
<td colspan="2"><xsl:value-of select="$data/data/title" /></td>
<td width="1"><xsl:value-of select="$data/data/name" /></td>
</tr>
</table>
</xsl:template>
</xsl:stylesheet>
<强>输出强>
<table width="100%" border="0" cellspacing="0" cellpadding="3" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px;">
<tr>
<td colspan="2">Title</td>
<td width="1">Name</td>
</tr>
<tr>
<td colspan="2">Mr</td>
<td width="1">Peter</td>
</tr>
</table>