连接相同种类、相同CSS类的连续HTML标记
我正在尝试处理几个自动生成的HTML文件,我需要加入同一类的连续连接相同种类、相同CSS类的连续HTML标记,html,xslt,lxml,Html,Xslt,Lxml,我正在尝试处理几个自动生成的HTML文件,我需要加入同一类的连续span元素。这个类或多或少是先验的 编辑#1: 示例输入#1: 持不同政见者的意见 Č 伊尼 Č 阿尔伯克基品托酒店 Ū 里斯 以下样式表: XSLT1.0 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encodin
span
元素。这个类或多或少是先验的
编辑#1:
示例输入#1:
持不同政见者的意见
Č
伊尼
Č
阿尔伯克基品托酒店
Ū
里斯
以下样式表:
XSLT1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="p">
<xsl:copy>
<xsl:copy-of select="@*"/>
<span class="{span[1]/@class}">
<xsl:apply-templates/>
</span>
</xsl:copy>
</xsl:template>
<xsl:template match="br">
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>
请以代码而不是图片的形式发布您的输入,并添加预期的输出(也作为代码)在您的示例中,所有span元素都具有相同的类,因此这不是很有帮助。@michael.hor257k您是对的,请参见上面的编辑。而且,准确的类名对我来说并不重要。
span
元素具有相同的类号也是问题定义的一部分,类名并不重要。重要的是知道可能的情况是什么。如果一个可以包含多个类的,那么您的示例应该说明这一点。另外,您提到了连续跨度:是否存在同一类的跨度不连续的情况?如果是,让我们也看一个例子。@michael.hor257k我至少见过一个例子,其中span
标记不是连续的,而是每次它们属于同一类。请看我编辑的帖子中的另一个例子谢谢你的回答,它很有效。您是对的,当然HTML必须首先转换为XHTL。但是,我可以问您如何编写样式表,以便转换保留HTML正文的其余部分吗?这是不是太笼统了?是否需要p
元素的XPath?我不好,我应该澄清一下,我在这里展示的是一个摘录
<?xml version="1.0" encoding="UTF-8"?>
<p class="sC8420256">
<span class="s32A37344">OPINION EN PARTIE DISSIDENTE COMMUNE AUX JUGES VUČINIČ, PINTO DE ALBUQUERQUE ET KŪRIS</span>
</p>
<?xml version="1.0" encoding="UTF-8"?>
<p class="sC8420256">
<span class="s32A37344">OPINION CONCORDANTE DE M. LE JUGE COSTA, À LAQUELLE SE RALLIE M. LE JUGE SPIELMANN</span>
</p>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="p">
<xsl:copy>
<xsl:copy-of select="@*"/>
<span class="{span[1]/@class}">
<xsl:apply-templates/>
</span>
</xsl:copy>
</xsl:template>
<xsl:template match="span">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="br">
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>