gpt4 book ai didi

java - 使用 XSLT 将 HTML 表格转换为 CSV

转载 作者:行者123 更新时间:2023-11-29 04:32:14 30 4
gpt4 key购买 nike

我有一个具有以下定义的 html 表

    <table>
<tr>
<th>Order ID</th>
<th>Item ID</th>
<th>Participant ID</th>
<th>Status</th>
<th>Shipping Provider</th>
<th>Tracking Number</th>
<th>Shipped Date</th>
<th>Shipping Method</th>
</tr>
<tr>
<td align="center"> Ch_H907</td>
<td align="center"> 907</td>
<td align="center"> DXM09902</td>
<td align="center"> Shipped</td>
<td align="center"> USPS</td>
<td align="center"> </td>
<td align="center"> 04/03/2017</td>
<td align="center"> Standard Ground</td>
</tr>
<tr>
<td align="center"> Ch_H871</td>
<td align="center"> 871</td>
<td align="center"> DXM09902</td>
<td align="center"> Shipped</td>
<td align="center"> USPS</td>
<td align="center"> </td>
<td align="center"> 04/03/2017</td>
<td align="center"> Standard Ground</td>
</tr>
</table>

和一个xslt翻译定义如下

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format" >
<xsl:output method="text" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:for-each select="//tr">
<xsl:for-each select="td">
<xsl:value-of select="concat({.},',')"/>
</xsl:for-each>
<xsl:value-of select="concat('&#xA;','')"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

我想要的输出应该是每个 <tr>在单独的一行上,但上面的翻译抛出异常 line 9: Required attribute 'select' is missing.

最佳答案

concat 语句中不需要大括号。

而不是这样做...

<xsl:value-of select="concat({.},',')"/>

这样做...

<xsl:value-of select="concat(.,',')"/>

大括号正确用作 Attribute Value Templates

请注意,您可能需要重新调整代码以避免在每行末尾多写一个逗号。

    <xsl:for-each select="//tr">
<xsl:for-each select="td">
<xsl:if test="position() > 1">,</xsl:if>
<xsl:value-of select="."/>
</xsl:for-each>
<xsl:text>&#xA;</xsl:text>
</xsl:for-each>

关于java - 使用 XSLT 将 HTML 表格转换为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376323/

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