gpt4 book ai didi

css - 如何在 XSLT 中获取父节点并将其加粗(应用任何样式)?

转载 作者:太空宇宙 更新时间:2023-11-04 12:00:50 26 4
gpt4 key购买 nike

我是 XSLT 初学者,我需要加粗或对祖先元素应用任何样式。请在下面找到 xml、xsl 和所需的输出。

XML:

<group>
<elementgroup1>
<element1>value1</element1>
<element2/>
<element3>value3</element3>
</elementgroup1>
<elementgroup2>
<elementsubgroup2>
<element4>value4</element4>
<element5>value5</element5>
</elementsubgroup2>
</elementgroup2>
</group>

XSL:

<?xml version="1.0" standalone="yes"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0" indent="yes"/>
<xsl:output method="html" version="4.0" indent="yes"/>
<xsl:template match="/">
<xsl:element name="table">
<xsl:attribute name="border">1</xsl:attribute>
<xsl:element name="tr">
<xsl:element name="th">
<xsl:text>Elements</xsl:text>
</xsl:element>
<xsl:element name="th">
<xsl:text>Values</xsl:text>
</xsl:element>
</xsl:element>
<xsl:apply-templates select="*"/>
</xsl:element>
</xsl:template>
<xsl:template match="*">
<xsl:element name="tr">

<xsl:element name="td">

<xsl:value-of select="name()"/>
</xsl:element>
<xsl:element name="td">
<xsl:value-of select="normalize-space(text())"/>
<xsl:if test="boolean(@styVal)">
<xsl:value-of select="@styVal"/>
</xsl:if>

</xsl:element>
</xsl:element>
<xsl:apply-templates select="*"/>
</xsl:template>
</xsl:stylesheet>

我需要的输出:

<table>
<tr>
<td style="font-weight:bold">group</td>
<td></td>
</tr>
<tr>
<td style="font-weight:bold">elementgroup1</td>
<td></td>
</tr>
<tr>
<td>element1</td>
<td>value1</td>
</tr>
<tr>
<td>element2</td>
<td></td>
</tr>
<tr>
<td>element3</td>
<td>value3</td>
</tr>
<tr>
<td style="font-weight:bold">elementgroup2</td>
<td></td>
</tr>
<tr>
<td style="font-weight:bold">elementsubgroup2</td>
<td></td>
</tr>
<tr>
<td>element4</td>
<td>value4</td>
</tr>
<tr>
<td>element5</td>
<td>value5</td>
</tr>
</table>

目前期待这个style="font-weight:bold",请提出您的看法。

最佳答案

我相信这会返回您按要求发布的结果。但也许您正在寻找其他东西,因为您的 XSLT 尝试显然正朝着另一个方向发展。

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" version="1.0" encoding="utf-8" indent="yes"/>

<xsl:template match="/">
<table>
<xsl:apply-templates select="*"/>
</table>
</xsl:template>

<xsl:template match="*[*]">
<tr>
<td style="font-weight:bold">
<xsl:value-of select="name()"/>
</td>
<td/>
</tr>
<xsl:apply-templates select="*"/>
</xsl:template>

<xsl:template match="*">
<tr>
<td>
<xsl:value-of select="name()"/>
</td>
<td>
<xsl:value-of select="."/>
</td>
</tr>
</xsl:template>

</xsl:stylesheet>

关于css - 如何在 XSLT 中获取父节点并将其加粗(应用任何样式)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29820447/

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