2015-02-26 1 views
0

Я новичок в обмене стеками, поэтому заранее извиняюсь за любые ошибки, которые я мог бы сделать ... У меня этот xml экспортирован из нашего программного обеспечения для управления изображениями, и я хотел бы отформатировать его в формате таблицы. Экспорт позволяет использовать XSL для форматирования данных, но не предлагает примеров того, как это сделать. Я надеюсь, что это будет довольно простая задача, когда-то с некоторыми указателями. Спасибо заранее ... ДжеремиКак создать XSLT для форматирования экспортированного xml в формате таблицы?

<?xml version="1.1" encoding="UTF-8"?> 
<!DOCTYPE Export> 
<ns:Export xmlns:ns="http://www.canto.com/ns/Export/1.0"> 
<ns:Layout tableName="AssetRecords"> 
    <ns:Fields> 
     <ns:Field uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}" type="0" valueInterpretation="0"> 
      <ns:Name>Record Name</ns:Name> 
     </ns:Field> 
     <ns:Field uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}" type="0" valueInterpretation="0"> 
      <ns:Name>Title</ns:Name> 
     </ns:Field> 
     <ns:Field uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}" type="0" valueInterpretation="0"> 
      <ns:Name>Accession Number</ns:Name> 
     </ns:Field> 
     <ns:Field uid="{9aac53db-e086-4d3d-8016-299f73df292e}" type="0" valueInterpretation="0"> 
      <ns:Name>Artist</ns:Name> 
     </ns:Field> 
     <ns:Field uid="{3248196a-a576-11d5-8c20-003065ed2114}" type="0" valueInterpretation="0"> 
      <ns:Name>Vernon</ns:Name> 
     </ns:Field> 
    </ns:Fields> 
</ns:Layout> 
<ns:Items> 
    <ns:Item catalogid="3" id="320361"> 
     <ns:FieldValue uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}">Ca102450.tif</ns:FieldValue> 
     <ns:FieldValue uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}">Plant forms pendant</ns:FieldValue> 
     <ns:FieldValue uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}">2013.133</ns:FieldValue> 
     <ns:FieldValue uid="{9aac53db-e086-4d3d-8016-299f73df292e}">INDIAN</ns:FieldValue> 
     <ns:FieldValue uid="{3248196a-a576-11d5-8c20-003065ed2114}">109996</ns:FieldValue> 
    </ns:Item> 
    <ns:Item catalogid="3" id="320587"> 
     <ns:FieldValue uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}">Ca102453.tif</ns:FieldValue> 
     <ns:FieldValue uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}">Horse and rider pendant</ns:FieldValue> 
     <ns:FieldValue uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}">2013.212</ns:FieldValue> 
     <ns:FieldValue uid="{9aac53db-e086-4d3d-8016-299f73df292e}">INDIAN</ns:FieldValue> 
     <ns:FieldValue uid="{3248196a-a576-11d5-8c20-003065ed2114}">110102</ns:FieldValue> 
    </ns:Item> 
    <ns:Item catalogid="3" id="320612"> 
     <ns:FieldValue uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}">Ca102455.tif</ns:FieldValue> 
     <ns:FieldValue uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}">Durga pendant</ns:FieldValue> 
     <ns:FieldValue uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}">2013.238</ns:FieldValue> 
     <ns:FieldValue uid="{9aac53db-e086-4d3d-8016-299f73df292e}">INDIAN</ns:FieldValue> 
     <ns:FieldValue uid="{3248196a-a576-11d5-8c20-003065ed2114}">110129</ns:FieldValue> 
    </ns:Item> 
    <ns:Item catalogid="3" id="320596"> 
     <ns:FieldValue uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}">Ca102458.tif</ns:FieldValue> 
     <ns:FieldValue uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}">Horse and rider mould</ns:FieldValue> 
     <ns:FieldValue uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}">2013.221</ns:FieldValue> 
     <ns:FieldValue uid="{9aac53db-e086-4d3d-8016-299f73df292e}">INDIAN</ns:FieldValue> 
     <ns:FieldValue uid="{3248196a-a576-11d5-8c20-003065ed2114}">110113</ns:FieldValue> 
    </ns:Item> 
    <ns:Item catalogid="3" id="320610"> 
     <ns:FieldValue uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}">Ca102461.tif</ns:FieldValue> 
     <ns:FieldValue uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}">Durga mould</ns:FieldValue> 
     <ns:FieldValue uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}">2013.236</ns:FieldValue> 
     <ns:FieldValue uid="{9aac53db-e086-4d3d-8016-299f73df292e}">INDIAN</ns:FieldValue> 
     <ns:FieldValue uid="{3248196a-a576-11d5-8c20-003065ed2114}">110127</ns:FieldValue> 
    </ns:Item> 
    <ns:Item catalogid="3" id="320622"> 
     <ns:FieldValue uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}">Ca102463.tif</ns:FieldValue> 
     <ns:FieldValue uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}">Surya pendant</ns:FieldValue> 
     <ns:FieldValue uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}">2013.248</ns:FieldValue> 
     <ns:FieldValue uid="{9aac53db-e086-4d3d-8016-299f73df292e}">INDIAN</ns:FieldValue> 
     <ns:FieldValue uid="{3248196a-a576-11d5-8c20-003065ed2114}">110140</ns:FieldValue> 
    </ns:Item> 
    <ns:Item catalogid="3" id="320492"> 
     <ns:FieldValue uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}">Ca102466.tif</ns:FieldValue> 
     <ns:FieldValue uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}">Ganesh mould</ns:FieldValue> 
     <ns:FieldValue uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}">2013.117</ns:FieldValue> 
     <ns:FieldValue uid="{9aac53db-e086-4d3d-8016-299f73df292e}">INDIAN</ns:FieldValue> 
     <ns:FieldValue uid="{3248196a-a576-11d5-8c20-003065ed2114}">109980</ns:FieldValue> 
    </ns:Item> 
    <ns:Item catalogid="3" id="320623"> 
     <ns:FieldValue uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}">Ca102468.tif</ns:FieldValue> 
     <ns:FieldValue uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}">Figure mould</ns:FieldValue> 
     <ns:FieldValue uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}">2013.249</ns:FieldValue> 
     <ns:FieldValue uid="{9aac53db-e086-4d3d-8016-299f73df292e}">INDIAN</ns:FieldValue> 
     <ns:FieldValue uid="{3248196a-a576-11d5-8c20-003065ed2114}">110141</ns:FieldValue> 
    </ns:Item> 
    <ns:Item catalogid="3" id="320458"> 
     <ns:FieldValue uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}">Ca102470.tif</ns:FieldValue> 
     <ns:FieldValue uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}">Shiva and Parvati on horseback mould</ns:FieldValue> 
     <ns:FieldValue uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}">2013.231</ns:FieldValue> 
     <ns:FieldValue uid="{9aac53db-e086-4d3d-8016-299f73df292e}">INDIAN</ns:FieldValue> 
     <ns:FieldValue uid="{3248196a-a576-11d5-8c20-003065ed2114}">110122</ns:FieldValue> 
    </ns:Item> 
    <ns:Item catalogid="3" id="320366"> 
     <ns:FieldValue uid="{af4b2e00-5f6a-11d2-8f20-0000c0e166dc}">Ca102474.tif</ns:FieldValue> 
     <ns:FieldValue uid="{af4b2e43-5f6a-11d2-8f20-0000c0e166dc}">Hanuman mould</ns:FieldValue> 
     <ns:FieldValue uid="{0ab76098-1c48-11d5-acb3-00306510d9c9}">2013.138</ns:FieldValue> 
     <ns:FieldValue uid="{9aac53db-e086-4d3d-8016-299f73df292e}">INDIAN</ns:FieldValue> 
     <ns:FieldValue uid="{3248196a-a576-11d5-8c20-003065ed2114}">110001</ns:FieldValue> 
    </ns:Item> 
</ns:Items> 
</ns:Export> 

Я хотел бы данные, отформатированные в строках ...

Record Name Title     Accession Number Artist Vernon 
Ca102450  Plant forms pendant  2013.133   Indian 109996 
Ca102453  Horse and rider pendant 2013.212   Indian 110102 
etc 
+1

это должно ли быть общим преобразованием, или один для конкретного случая? Если он является общим, как бы он знал, чтобы удалить .tif из значений Record Name и изменить все, кроме первой буквы значений Artist, в нижний регистр? – JLRishe

+0

Спасибо, что нашли время, чтобы посмотреть ... – jeremy

+0

Добро пожаловать. Ты собираешься ответить на мой вопрос? Кроме того, почему два поля имеют одинаковый UID? – JLRishe

ответ

0

Прежде всего, добро пожаловать к переполнению стека, где мы действительно можем исследовать, делиться многими идеями и решать наши проблемы.

Когда вы превращаете ниже XSLT с XML вы получите формат таблицы

XSLT:

<?xml version='1.0'?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://www.canto.com/ns/Export/1.0" exclude-result-prefixes="ns"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 
<xsl:template match="ns:Export"><table xmlns:ns="http://www.canto.com/ns/Export/1.0"><xsl:apply-templates/></table></xsl:template> 
<xsl:template match="ns:Fields"><thead><tr><xsl:apply-templates/></tr></thead></xsl:template> 
<xsl:template match="ns:Field/ns:Name"><td><xsl:apply-templates/></td></xsl:template> 
<xsl:template match="ns:Items"><tbody><xsl:apply-templates/></tbody></xsl:template> 
<xsl:template match="ns:Item"><tr><xsl:apply-templates/></tr></xsl:template> 
<xsl:template match="ns:FieldValue"><td><xsl:apply-templates/></td></xsl:template> 
</xsl:stylesheet> 
+0

Спасибо siva2012, – jeremy

+0

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

+0

@jeremy. По вашему запросу найдите предыдущую версию, которую я сделал, если было правильно, тогда сделайте это как правильный ответ – siva2012

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