как извлечь атрибуты элемента из XML с помощью xslt и отобразить в другом стиле

Я новичок в 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>

Я не могу извлечь атрибуты из тега и отобразить их в стиле (скажем, полужирным шрифтом).

Пожалуйста помоги. Заранее спасибо.


person P.Muralikrishna    schedule 09.03.2012    source источник
comment
Это схема SDL Tridion? Где добавляется атрибут автора? Я думал, что данные поля сохраняются как дочерние узлы, а не в каких-либо атрибутах.   -  person Alvin Reyes    schedule 10.03.2012


Ответы (2)


Этот 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, если хотите продвинуться намного дальше.

person Frank van Puffelen    schedule 09.03.2012

Если вы хотите отобразить текст со стилем, вам нужно отобразить содержимое в формате html. Вы должны использовать XSLT, чтобы получить информацию из XML и создать вывод HTML с требуемым стилем.

person Raghuram    schedule 09.03.2012
comment
@Raghuram.. Разве нельзя отображать в самом XML, добавляя некоторые расширения. Потому что мой окончательный вывод должен быть только в xml. - person P.Muralikrishna; 09.03.2012
comment
Вы не можете ... поскольку XML - это метаязык, и он определяет набор правил представления данных. Для представления данных вы должны иметь их в HTML или других форматах... - person Raghuram; 09.03.2012
comment
XML-схема — это правила, представляющие определение данных, @Raghuram. Вывод, особенно с Tridion, может быть в любом текстовом формате, включая XML (или XSD, если это необходимо). Вы правы, что жирный шрифт имеет смысл с точки зрения веб-страниц, но вопрос остается в силе. - person Alvin Reyes; 10.03.2012