2012-03-09 30 views
0

我是XSLT的新手。我正在将XML文件从一种格式转换为另一种格式。 我也想从一个元素中提取值并以粗体格式显示它们。如何使用xslt从XML中提取元素的属性并以不同样式显示

示例源XML:需要

<Content xmlns="uuid:4522eb85"> 
     <first xmlns="uuid:4522eb85">Hello World. This is first field</first> 
     <second author="XYZ">Hi iam second field</second> 
</Content> 

输出格式:

<root> 
    <aaa>Hello World. This is first field</aaa> 
    <bbb><author>**XYZ**</author>Hi iam second field</bbb> 
    <root> 

我无法提取标签和显示与样式属性(比如粗体)。

请帮忙。 预先感谢您。

+0

这是SDL Tridion架构吗?作者属性在哪里添加?我认为现场数据保存为子节点而不是任何属性。 – 2012-03-10 06:55:51

+0

您应该查看W3Schools.com上的XSLT教程 - http://www.w3schools.com/xsl/default.asp。我认为自己现在可以胜任XSLT,尽管这不是我经常练习的技能。当我需要通过特定的方法来刷新我的记忆时,我发现该网站上的信息非常有用。 – 2012-03-10 10:13:12

回答

3

此XSLT完全按照您的要求输出。

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:c="uuid:4522eb85" exclude-result-prefixes="c"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/> 

    <xsl:template match="/c:Content"> 
     <root> 
      <aaa><xsl:value-of select="c:first"/></aaa> 
      <bbb><author>**<xsl:value-of select="c:second/@author" />**</author><xsl:value-of select="c:second" /></bbb> 
     </root> 
    </xsl:template> 
</xsl:stylesheet> 

但杰里米建议,你可能要考虑先服用(在线)XSLT的训练,如果你想获得更远。

1

如果你想显示带有样式的文本,那么你必须在HTML中显示内容。您应该使用XSLT从XML获取信息并根据您的需要创建HTML输出样式

+0

@ Raghuram ..通过添加一些扩展名,无法在XMl本身中进行显示。因为我的最终输出只需要在xml中。 – 2012-03-09 05:25:21

+1

你不能......因为XML是一种元语言,它指定了一系列表示数据的规则。为了呈现数据,您必须使用HTML或其他格式... – Raghuram 2012-03-09 06:01:57

+1

_XML schema_将是“规则表示数据”定义,@ Raghuram。输出,尤其是Tridion输出,可以是任何基于文本的格式,包括XML(如果需要,也可以是XSD)。你说得对,“大胆”的风格在网页方面很有意义,但问题依然有效。 – 2012-03-10 06:53:05

相关问题