XSLT将HTML转换为XML

XSLT将HTML转换为XML,xml,xslt,Xml,Xslt,我正在尝试转换以下HTML代码,但在获取所需的值和使用XSLT的substring函数时遇到问题。这是我试图转换的HTML代码的一部分: <th scope="row">2005DEC</th> <td>2,757</td> <Group> <value> <xsl:value-of select="following-

我正在尝试转换以下HTML代码,但在获取所需的值和使用XSLT的substring函数时遇到问题。这是我试图转换的HTML代码的一部分:

<th scope="row">2005DEC</th>
<td>2,757</td>
            <Group>

                <value>
                    <xsl:value-of select="following-sibling::td[1]"/>
                </value>
            </Group>

            </Age>
        </Entry>
    </xsl:for-each>
</Original>
</xsl:template>

在不了解上下文的情况下,很难提出建议。我猜你想做:

<xsl:value-of select="substring(th[@scope='row'], 1, 4)"/>
            <Group>

                <value>
                    <xsl:value-of select="following-sibling::td[1]"/>
                </value>
            </Group>

            </Age>
        </Entry>
    </xsl:for-each>
</Original>
</xsl:template>

也是无效的语法-但是我不知道如何修复它而不了解XML的结构。

如果不知道上下文是什么,很难给出建议。我猜你想做:

<xsl:value-of select="substring(th[@scope='row'], 1, 4)"/>
            <Group>

                <value>
                    <xsl:value-of select="following-sibling::td[1]"/>
                </value>
            </Group>

            </Age>
        </Entry>
    </xsl:for-each>
</Original>
</xsl:template>

也是无效的语法-但我不知道如何修复它,而不知道XML是如何构造的。

好吧,使用表达式

<xsl:value-of select="substring(@scope=row, 5, 3)"/>
            <Group>

                <value>
                    <xsl:value-of select="following-sibling::td[1]"/>
                </value>
            </Group>

            </Age>
        </Entry>
    </xsl:for-each>
</Original>
</xsl:template>
我们不知道您的完整输入树是什么,但请先尝试以下方法:

            <Group>

                <value>
                    <xsl:value-of select="following-sibling::td[1]"/>
                </value>
            </Group>

            </Age>
        </Entry>
    </xsl:for-each>
</Original>
</xsl:template>

            <Group>

                <value>
                    <xsl:value-of select="following-sibling::td[1]"/>
                </value>
            </Group>

            </Age>
        </Entry>
    </xsl:for-each>
</Original>
</xsl:template>

好吧,用这个表达式

<xsl:value-of select="substring(@scope=row, 5, 3)"/>
            <Group>

                <value>
                    <xsl:value-of select="following-sibling::td[1]"/>
                </value>
            </Group>

            </Age>
        </Entry>
    </xsl:for-each>
</Original>
</xsl:template>
我们不知道您的完整输入树是什么,但请先尝试以下方法:

            <Group>

                <value>
                    <xsl:value-of select="following-sibling::td[1]"/>
                </value>
            </Group>

            </Age>
        </Entry>
    </xsl:for-each>
</Original>
</xsl:template>

            <Group>

                <value>
                    <xsl:value-of select="following-sibling::td[1]"/>
                </value>
            </Group>

            </Age>
        </Entry>
    </xsl:for-each>
</Original>
</xsl:template>


Please review:Please review:我正在尝试获取开始标记和结束标记之间的值,并使用substring函数对它们进行切片。但我在尝试这样做时遇到了困难,因为它是一个属性。@Itong也请发布一个最小但完整的XML。刚刚做了。。。可以吗?我看你没有。我指的是XML输入。输入是HTML。应该使用XSLT将HTML转换为XML。我尝试获取开始标记和结束标记之间的值,并使用substring函数对它们进行切片。但我在尝试这样做时遇到了困难,因为它是一个属性。@Itong也请发布一个最小但完整的XML。刚刚做了。。。可以吗?我看你没有。我指的是XML输入。输入是HTML。应该使用XSLT将HTML转换为XML。