2014-01-08 2 views
0

У моего Xml есть данные ниже. мне нужно получить тип, заголовок, который содержит «шаг» в заголовке и номер шагаКак вызвать элемент XML с помощью XSLT

<?xml version="1.0" encoding="ISO-8859-1"?> 

<Testlog> 
     <Event Timestamp="27-Dec-2012 04:25:12.247 PM" Type="Script End" Headline="Script end [DSE.DSEBalanceInquiry_FC.DseBalanceInquiry_FC_Test_003]" Result="WARNING"> 
     <Property script_name="DSE.DSEBalanceInquiry_FC.DseBalanceInquiry_FC_Test_003"/> 
     <Property script_id="DSE.DSEBalanceInquiry_FC.DseBalanceInquiry_FC_Test_003.java"/> 
    </Event> 

    <Event Timestamp="27-Dec-2012 04:25:10.747 PM" Type="Export Event" Headline="getProperty on the List ABC: Trace Facility" Result="PASS"> 
     <Property line_number="434"/> 
     <Property script_name="DSE.DSEBalanceInquiry_FC.DseBalanceInquiry_FC_Test_003"/> 
    </Event> 

<Event Timestamp="27-Dec-2012 04:16:33.226 PM" Type="General" Headline="_FRMWK.SystemLibrary.Sys_TmxProcesses logStepBegin: Step: 2; Action: node; Narrative: Node: &apos;DseBalanceInquiry_FC.RST_ACU_DEF(T)&apos; &apos;Use ACU to Import the default ACU settings xml file. When importing, all the checkboxes are checked in the Application list. i.e. Perform the RestoreAcuDefaults keyword &apos;; TestName: DseBalanceInquiry_FC_Test_003" Result="INFORMATION"> 
     <Property script_name="DSE.DSEBalanceInquiry_FC.DseBalanceInquiry_FC_Test_003"/> 
     <Property line_number="61"/> 
     <Property script_id="DSE.DSEBalanceInquiry_FC.DseBalanceInquiry_FC_Test_003.java"/> 
    </Event> 
    <Event Timestamp="27-Dec-2012 04:16:33.335 PM" Type="General" Headline="_FRMWK.SystemLibrary.Sys_TmxProcesses logStepBegin: Step: 2.001; Action: ImportACU; Narrative:    Import ACU settings based on &apos;&apos; ; TestName: DseBalanceInquiry_FC_Test_003" Result="INFORMATION"> 
     <Property script_name="DSE.DSEBalanceInquiry_FC.DseBalanceInquiry_FC_Test_003"/> 
     <Property line_number="64"/> 
     <Property script_id="DSE.DSEBalanceInquiry_FC.DseBalanceInquiry_FC_Test_003.java"/> 
    </Event> 

</Testlog> 

отредактировал код. Это дает мне список заголовков, которые имеют шаг. Если я хочу получить номер шага в отдельной строке, как я могу это достичь?

 <?xml version="1.0" encoding="ISO-8859-1"?> 

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

    <xsl:template match="/"> 
    <html> 
     <body> 
    <h2>Report</h2> 
    <table border="1"> 
    <tr bgcolor="#9acd32"> 
    <th style="text-align:left">Title</th> 
    <th style="text-align:left">Artist</th> 
    <th style="text-align:left">Step</th> 
    <th style="text-align:left">Headline</th> 
    </tr> 

    <xsl:for-each select="Testlog/Event[contains(@Headline, 'Step:')]"> 
    <tr> 
    <td><xsl:value-of select="@Type"/></td> 
    <td><xsl:value-of select="@Result"/></td> 
    <td><xsl:value-of select="@Step"/></td> 
    <td><xsl:value-of select="@Headline"/></td> 
    </tr> 
    </xsl:for-each> 
</table> 
+0

Можете ли вы уточнить, что именно вы хотите добавить к результату? У вас уже есть * Тип и заголовок вместе с Результатом. –

+0

Приносим извинения за неточность данных. В заголовке, который имеет «STEP» в заголовке, мне нужны данные, которые будут отображаться. – sagar

ответ

0

Если вы имеете в виду вы хотите добавить события, чей заголовок содержит «Шаг:» в отчет в качестве дополнительных строк таблицы, а затем заменить эту строку:

<xsl:for-each select="Testlog/Event[@Result='WARNING']"> 

с:

<xsl:for-each select="Testlog/Event[@Result='WARNING' or contains(@Headline, 'Step:')]"> 

Если нет, то, пожалуйста, уточните еще кое-что.


еще один вопрос, если я хочу, чтобы получить номер шага в отдельной строке, , как я могу добиться этого? -

Я думаю, вы имеете в виду отдельный столбец, а не ряд? Если это так, добавить еще один элемент <td> к столу (внутри цикла) for-each:

<td><xsl:value-of select="substring-before(substring-after(@Headline, 'Step:'), ';')"/></td> 

Затем добавить соответствующий <th> элемент заголовка таблицы выше.

+0

Я получил его. Спасибо за ваш ответ и терпение :) – sagar

+0

Майкл У меня есть еще один вопрос: если я хочу получить номер шага в отдельной строке, как я могу это достичь? – sagar

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