2013-11-09 5 views
0

Пример XML-Как создать XSLT для моего образца xml?

<xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    <w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"> 
    <w:styles> 
     <w:style w:type="paragraph" w:styleId="booktitle1"> 
      <w:name w:val="Book Title1" /> 
      <w:rPr> 
       <w:b/> 
      </w:rPr>  
     </w:style> 
    </w:styles> 
    <w:body> 
    <w:p> 
     <w:pPr><w:pStyle w:val="booktitle1"/></w:pPr> 
     <w:r> 
     <w:rPr> 
     <w:rStyle w:val="booktitle1"/> 
     </w:rPr>  
     <w:t>Book title</w:t> 
     </w:r> 
     <w:r wsp:rsidRPr="00C358DC"> 
      <w:rPr> 
      <w:rStyle w:val="booktitle1"/> 
      <w:b w:val="off"/> 
     </w:rPr> 
     <w:t> Author</w:t> 
     </w:r> 
    </w:p> 
    </w:body> 
    </w:wordDocument> 

В этом примере XML, информация пункт форматирование текста (т.е. выделены жирным шрифтом) определяет в пределах свойства стиля. Таким образом, стиль применит полужирное форматирование для всего абзаца. Но свойство «Автор» запускает переопределение жирного шрифта для конкретного текста. Таким образом, эти символы присутствуют без смело в абзаце. Итак, мне нужен приведенный ниже выходной файл xml с помощью xslt.

Вывод XML:

 <p class=”Book Title1”><b val=”on”>Book title</b><b val=”off”> Author</b></p> 
     or 
     <p class=”Book Title1”><b>Book title</b> Author</p> 

Кто-нибудь есть идеи, как это сделать? Любые идеи или комментарии приветствуются.

+1

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

ответ

0

RenderX имеет набор таблиц стилей, которые обрабатывают WordML, которые, конечно же, включают в себя перемещение названных стилей в WordML через их эквиваленты, хранящиеся в альтернативных местах в файле. Я бы предложил в качестве ответа, что вы изучите, как они это сделали, и адаптируются к вашим пространствам имен и т. Д. если они не совпадают.

Они находятся на http://www.renderx.com/tools/word2fo.html

И я вам скажу, что это не так просто, как вы думаете. Стили в WordML могут иметь связанные стили (которые, в свою очередь, могут иметь другие связанные стили ... и т. Д.), А также вы должны знать, когда применять стиль по умолчанию к некоторым элементам (w: p), а не (когда aw: p находится внутри aw: tc или aw: r, который является списком). И вы должны запрограммировать всю цепочку связанных стилей, применяя их в правильном порядке, чтобы добиться соответствия стилю в Word.

Хотя вы можете подумать, что это не «ответ» на ваш вопрос, это так.

Вы задали вопрос, на который, по вашему мнению, легко ответить, но я могу сказать вам по опыту, что RenderX потратил много человеко-лет, развивая эти преобразования из WordML, чтобы интерпретировать стили.

+0

Спасибо, Кевин Браун. – user2972226

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