0
很抱歉的格式,‘長期潛伏者,第一次海報’....捕獲「semi'-標記文本
我和另一個程序員一直在這一點,並試圖許多排列。我所想捕捉的是,去年「這是酒吧外無標記文本」行...... 不知道如何更好地描述標籤,但我收到的結構像這樣的XML塊:
<?xml version="1.0" encoding="UTF-8"?>
<text>
<inlineTag name="bar">
<inlineTag name="text">
<inlineTag name="strong">
THIS IS A SIDEBAR BOX
</inlineTag>
</inlineTag>`
<break type="paragraph"/>
<break type="paragraph"/>
This is untagged text inside bar.
</inlineTag>
This is untagged text outside bar
</text>
我運行鍼對此XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template name="Untagged_Bar" match="text()[parent::node()/@name='bar']">
<xsl:choose>
<xsl:when test="self::text() and string-length(.) > 0">
<xsl:element name="p">
<xsl:attribute name="class" select="'k4text'"/>
<xsl:value-of select="."/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="bold" match="//inlineTag[@name='strong']">
<xsl:element name="strong">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
<xsl:template match="/">
<root>
<xsl:apply-templates/>
</root>
</xsl:template>
而且我得到這個,這是我想要的幾乎什麼...
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p class="k4text">
</p>
<strong>
THIS IS A SIDEBAR BOX
</strong>
<p class="k4text">
</p>
<p class="k4text">
</p>
<p class="k4text">
This is untagged text inside bar.
</p>
This is untagged text outside bar
</root>
我要的是更多類似這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p class="k4text">
<strong>
THIS IS A SIDEBAR BOX
</strong>
</p>
<p class="k4text">
This is untagged text inside bar.
</p>
<p class="k4text">
This is untagged text outside bar
</p>
</root>
我缺少什麼?我有另一個XSLT傢伙在這裏工作看看吧,我們嘗試了很多排列組合,這是我們可以得到的最接近,但我們仍然不能說最後
<p class="k4text">
This is untagged text outside bar
</p>
出來正確的......任何想法/幫助/建議非常感謝!
我編輯了我的答案,以提供不同的,更有效的解決方案。 –