我正在尝试使用XSLT来显示我作为XML(想法为QWebView生成体面的HTML)所得到的一些结果。在XSLT中的属性值中插入标签
我是XSLT的初学者,我无法想象如何获得以下结果。 (这是一个例子)
输入
<object name="object_name">
<property1 diff="modified">value1</property1>
<property2>value2</property2>
</object>
输出
<p>object_name</p>
<ul>
<li>
property1 = <span style="color : #ff00000 ; font-weight : bold ;">value1</span>
</li>
<li>
property2 = value2
</li>
</ul>
所以我想添加一个 “跨度” 标签,每当我遇到一个 “差异” 属性(和适应风格属性值)
现在,我正在做这样的事情:
<xsl:template match="object">
<p>
<xsl:value-of select="@object_name"/>
</p>
<ul>
<xsl:apply-templates />
</ul>
</xsl:template>
<xsl:template match="object/*">
<li>
<xsl:sequence select="local-name(.)"/> = <xsl:value-of select="."/>
</li>
</xsl:template>
而且我得到了我想要除“跨度”标签是什么......我无法找到如何使它工作... 这里是我尝试写的那种代码片段和插头在那里,但没有成功:
<xsl:template match="*[@diff = 'modified']">
<span style="color : #ff0000 ; font-weight : bold ;">iDontKnowWhatToWrite</span>
</xsl:template>
预先感谢任何忠告或重定向
编辑:添加精度:感谢您与对象/ *匹配的属性值匹配的想法,但我希望找到一个单独的匹配解决方案,因为我将使用它匹配其他标签...
我不知道我是否非常清楚......实际上,这个XSLT将使用类似于我所展示的标签来处理XML,但会有几个标签具有不同的输出,就像,但现在我正在处理第一类,但我希望保持整个文档的这个“差异”属性行为(任何时候遇到,我想将以下内容嵌入到“span”标记中)
为什么不你在'span'元素的内部放置了'? –