gpt4 book ai didi

java - 使用java将多个xml文件转换为html文件

转载 作者:行者123 更新时间:2023-12-01 13:17:53 25 4
gpt4 key购买 nike

我的问题很简单我有两个 xml 文件和一个 xsl 文件,使用 java Transformer 我需要创建 html stringbuffer。我知道如何处理单个 xml 文件,我需要帮助来使用两个 xml。

我的第一个 xml

xml_1.xml(数据xml)

<data>  
<title>Mr</title>
<name>Peter</name>
</data>

我的第二个 xml 是

xml_2.xml(属性 xml)

<prop>
<lblname>Name</lblname>
<lbltitle>Title</lbltitle>
</prop>

我的 xsl 是

显示.xsl

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp "&#xa0;"><!ENTITY bull "&#x2022;">]>
<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 文件的示例代码,

最佳答案

使用document()函数在转换期间访问多个文档。为了方便起见,下面的解决方案将文档存储在变量中,因为它们被多次使用。

请注意

  • 由于您显然是在生成 HTML,因此您应该将 output 方法设置为“html”
  • 您的样式表中存在拼写错误,XML 输入中不存在名为 namee 的元素
  • 生成的表格不符合完整的 HTML 文档的条件。如果您打算这样使用它,您应该意识到这一点
  • 某些 td 元素的 colspan 属性没有意义。仅当另一行中有更多个可以跨越的表格单元格时才有用

样式表

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp "&#xa0;"><!ENTITY bull "&#x2022;">]>
<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>

关于java - 使用java将多个xml文件转换为html文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22319489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com