gpt4 book ai didi

html - 使用xslt以表格格式将xml转换为html

转载 作者:行者123 更新时间:2023-11-28 02:55:48 26 4
gpt4 key购买 nike

我是 xslt 的新手,需要将 xml 数据转换为 html 表格格式,如元素名称和数据作为表格列,我有工作代码显示在文本中,但我正在寻找 html 表格格式,请找到 xml 和xslt

目前得到这样的输出,请建议我如何得到这个

A_B 文本
A_C文字
A_D_D1 = 文本
A_D_D2_D3 文字
A_D_D2_D4 文字
A_E_E1_E2_E3 = 文本

但同样我需要以html表格格式显示

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="recur.xsl"?>
<A>
<B>Text</B>
<C>Text</C>
<D>
<D1>Text</D1>
<D2>
<D3>Text</D3>
<D4>Text</D4>
</D2>
</D>
<E>
<E1>
<E2>
<E3>Text</E3>
</E2>
</E1>
</E>
</A>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:strip-space elements="*"/>

<xsl:template match="*[text()]">
<xsl:for-each select="ancestor-or-self::*">
<xsl:value-of select="name()" />
<xsl:if test="position()!=last()">
<xsl:text>_</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text> </xsl:text>
<xsl:value-of select="." />
<xsl:text>&#10;</xsl:text>
<xsl:apply-templates select="*"/>
</xsl:template>
</xsl:stylesheet>

预期的输出是这样的

<html>
</head>
<body>
<table border="1">
<tr><td>A_B</td> <td> Text </td>
<tr><td>A_C</td> <td> Text </td>
<tr><td>A_D_D1</td> <td> Text </td>
<tr><td>A_D_D2_D3</td> <td> Text </td>
<tr><td>A_D_D2_D4</td> <td> Text </td>
<tr><td>A_E_E1_E2_E3</td> <td> Text </td>
</table>
</body>
</html>

最佳答案

你可以试试这个(可能只适用于输入示例):

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<table>
<xsl:apply-templates select="*"/>
</table>
</xsl:template>

<xsl:template match="*[text()]">
<tr>
<td>
<xsl:for-each select="ancestor-or-self::*">
<xsl:value-of select="name()" />
<xsl:if test="position()!=last()">
<xsl:text>_</xsl:text>
</xsl:if>
</xsl:for-each>
</td>
<td>
<xsl:value-of select="." />
</td>
</tr>
<xsl:text>&#10;</xsl:text>
<xsl:apply-templates select="*"/>
</xsl:template>
</xsl:stylesheet>

关于html - 使用xslt以表格格式将xml转换为html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37121314/

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