2015-04-23 4 views
0

Я пытаюсь создать XSL, чтобы лучше отображать XML-документ, который автоматически создается процессом внутри моей организации.XSLT для конкретного XML-формата

Я пытаюсь отобразить его так, чтобы разработчики могли ссылаться на информацию внутри. Прошу прощения, но я новичок в XSLT и пытаюсь применить учебники к моему сценарию.

Идеально для моего первого раунда, я пытаюсь перечислить узлы/DCXT/ATRs/ATR и их значения атрибутов. Я буду продвигаться оттуда.

В настоящее время все, что я могу получить, используя этот XLST и хром (открытый с помощью соответствующей команды, чтобы разрешить локальные файлы xsl), - это заголовочный текст и заголовки столбцов.

Я получаю строку, в которой нет значений.

всякая помощь была бы принята с благодарностью.

Формат XML выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<?xml-stylesheet type="text/xsl" href="ques.xsl"?> 

<DCXT attr1="xxx" attr2="yyyy" attr3="zzzz"> 
    <Desc>Text description</Desc> 
    <dbc> 
     <drv>text for drv</drv> 
     <prm/> 
     <hsNode>text for hsNode</hsNode> 
     <ptNode>text for ptNode</ptNode> 
     <sName>text for sname</sName> 
     <prd/> 
    </dbc> 
    <DSPs attr4="aaaa" attr5="1" attr3="bbb"> 
     <dsp attr6="1" attr7="true" attr8="1"> 
      <Desc>text for desc</Desc> 
     </dsp> 
     <!--... multiple 'Dsp' nodes defined defined ...--> 
    </DSPs> 
    <ATRs> 
     <ATR attr9="true" attr10="text for attr"> 
      <FRs> 
       <FR attr11="xxx" attr12="text for attr"> 
        <MPs> 
         <MP attr13="xxx" attr14="yyyy"/> 
         <!-- .... multiple MP nodes defined --> 
        </MPs> 
       </FR> 
       <!--... multiple FR nodes defined ...--> 
      </FRs> 
      <DPY> 
       <RDFs> 
        <SOF attr15="xxx" attr16="0"/> 
       </RDFs> 
       <BFRs> 
        <sof attr17="xxx" attr18="0"/> 
       </BFRs> 
      </DPY> 
     </ATR> 
     <!-- multiple ATR nodes defined --> 
    </ATRs> 
    <!-- more nodes defined at this level but removing for brevity--> 
</DCXT> 

Мой текст XSL выглядит следующим образом

<?xml version="1.0"?> 

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template match="/"> 
    <html> 
    <body> 
    <h2>My Text XSL</h2> 
    <table border="1"> 
     <tr> 
     <th>attr9</th> 
     <th>attr10</th> 
     </tr> 
     <xsl:for-each select="/DCXT"> 
     <tr> 
      <td><xsl:value-of select="attr9"/></td> 
      <td><xsl:value-of select="attr10"/></td> 
     </tr> 
     </xsl:for-each> 
    </table> 
    </body> 
    </html> 
</xsl:template> 

</xsl:stylesheet> 
+0

Чуть более подробно на то, что это не так, и где у вас возникли проблемы улучшит ваш вопрос хорошую сделку, которая будет (надеюсь) приведет к ответу на ваш вопрос – Pseudonym

ответ

0

Ну текст говорит, что вы хотите обработать /DCXT/ATRs/ATR, так что я изменил бы <xsl:for-each select="/DCXT"> к <xsl:for-each select="/DCXT/ATRs/ATR">, а затем использовать @attribute-name внутри, то есть, изменение

 <td><xsl:value-of select="attr9"/></td> 
     <td><xsl:value-of select="attr10"/></td> 

к

 <td><xsl:value-of select="@attr9"/></td> 
     <td><xsl:value-of select="@attr10"/></td> 
+0

Спасибо. Проблема в том, что я не получал никаких строк в таблице. Хотя у меня был неправильный путь навигации в моей инструкции select, это была опечатка, как я пробовал это раньше. Реальная проблема заключалась в том, что я не включал «@» перед именем атрибута. Спасибо, что помогли с таким новичком quesiton. – Don