2013-05-07 3 views
-1

Я упоминал ниже мой XML-файл, xml содержит множество тегов внутреннего стиля (используйте весь код xslt для извлечения всего текста), но он должен извлечь весь текст после иннервации и текста перед началом иннервации.Как извлечь текст тегов для детей и расширенный текст родительского тега из xml с помощью xslt

<?xml version="1.0" encoding="UTF-8"?> 
<Values> 
    <Value AttributeID="11218"> 
     <Text>WGP03068-CNZH-00 
       <style name="bold">Introduction of the Title</style>xslt 
       <style name="TextStyle1"> 
        The smallest font size for which kerning should be automatically adjusted. 
       </style> 
       <style name="bold">Reference for this book 
        <style name="TextStyle1"> 
        The smallest font size for which kerning should be automatically adjusted. 
       </style> 
       Hope you had a good learning experience. 
       </style> 
       I am expecting more solution for my doughts. 
      </Text> 
     </Value> 
    </Values> 

Мой код XSLT упоминается ниже:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
     <HTML> 
      <xsl:apply-templates /> 
     </HTML> 
    </xsl:template> 

    <xsl:template match="Values"> 
     <xsl:for-each select="Value"> 
      <xsl:for-each select="Text"> 
       <p> 
       <xsl:for-each select="style"> 
        <xsl:value-of select="." /> 
       </xsl:for-each> 
       </p> 
      </xsl:for-each> 
     </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 

Мой XSLT отсутствующего начиная текст и заканчивая текст элемента, который он читает только элемент, я хочу, чтобы прочитать все снаружи и innertag текст и добавить мой собственный стили (например, жирный, курсив, имя шрифта и цвета)

Я ожидаю ВЫХОДА, как показано ниже:

WGP03068-CNZH-00 Введение Название xslt Наименьший размер шрифта, для которого кернинг должен автоматически регулироваться. Ссылка для этой книги Наименьший размер шрифта, для которого кернинг должен быть автоматически скорректирован. Надеюсь, у вас было хорошее обучение. Я ожидаю большего решения для моих дот.

ответ

0

Лучшим подходом будет использование подхода «push» и код вашей таблицы стилей XSLT в виде серии подходящих шаблонов, где вы выведете требуемый html.

Например, чтобы преобразовать элемент Text в ваш XML в абзац, вы должны использовать следующий шаблон.

<xsl:template match="Text"> 
    <p> 
     <xsl:apply-templates /> 
    </p> 
    </xsl:template> 

И выводить стиль элемент как полужирный, вы бы шаблон:

<xsl:template match="style[@name='bold']"> 
    <span style="font-weight:bold"> 
     <xsl:apply-templates /> 
     </span> 
    </xsl:template> 

Попробуйте следующий XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:strip-space elements="*" /> 

    <xsl:template match="/"> 
    <HTML> 
     <xsl:apply-templates /> 
    </HTML> 
    </xsl:template> 

    <xsl:template match="Text"> 
    <p> 
     <xsl:apply-templates /> 
    </p> 
    </xsl:template> 

    <xsl:template match="style[@name='bold']"> 
    <span style="font-weight:bold"> 
     <xsl:apply-templates /> 
     </span> 
    </xsl:template> 

    <xsl:template match="style"> 
    <span> 
     <xsl:apply-templates /> 
    </span> 
    </xsl:template> 
</xsl:stylesheet> 

Применительно к вашему XML, выдается следующее:

<HTML> 
    <p>WGP03068-CNZH-00 
     <span style="font-weight:bold">Introduction of the Title</span>xslt 
     <span> 
     The smallest font size for which kerning should be automatically adjusted. 
     </span><span style="font-weight:bold">Reference for this book 
     <span> 
      The smallest font size for which kerning should be automatically adjusted. 
      </span> 
     Hope you had a good learning experience. 
     </span> 
     I am expecting more solution for my doughts. 

    </p> 
</HTML> 

Обратите внимание, что этот XSLT использует встроенные шаблоны XSLT для вывода текста. Где он <xsl:apply-templates />, а XSLT находит текстовый узел, если для него нет подходящего шаблона, он автоматически выводит текст для вас.

+0

Здесь я конвертирую XML в документ Word с помощью ProcessingWordML – user2357252

+0

Если XML имеет 20 разных атрибутовID, как установить формат заказа. Я должен проверить, как если имеет AttributeID = "11111", он должен отображать первый, а затем должен быть AttributeID = "11218" и т. Д. Мне нужно проверить атрибутID, а затем поместить позицию. Пожалуйста, любой может дать решение. – user2357252

+0

Было бы лучше, если бы вы задали совершенно новый вопрос для этого, а не задавали его в комментариях. Я уверен, что это не так сложно решить. –

Смежные вопросы