У меня возникли проблемы с преобразованием некоторых XML. У меня есть довольно общий шаблон c, и все идет выше определенного уровня. Когда я дохожу до первого экземпляра вложенных объектов, мой преобразователь не дает мне никакого вывода.
Вот как выглядит XML:
<?xml version="1.0" encoding="utf-8"?>
<Statistics>
<IcServer name="Apsep00840">
<ININ.Workgroup>
<ININ.People.WorkgroupStats_Workgroup name="Campaign 1">
<ININ.Workgroup_NumberAvailableForACDInteractions>11</ININ.Workgroup_NumberAvailableForACDInteractions>
<ININ.Workgroup_LongestAvailable>00:09:21</ININ.Workgroup_LongestAvailable>
<ININ.Workgroup_OnInboundACDInteractions>0</ININ.Workgroup_OnInboundACDInteractions>
<ININ.Workgroup_OnInboundACW>0</ININ.Workgroup_OnInboundACW>
<ININ.Workgroup_LongestInboundACDInteraction>N/A</ININ.Workgroup_LongestInboundACDInteraction>
<ININ.Workgroup_InteractionsWaiting>42</ININ.Workgroup_InteractionsWaiting>
<ININ.Workgroup_LongestWaitTime>00:00:42</ININ.Workgroup_LongestWaitTime>
<ININ.Workgroup_LongestOnHoldTime>N/A</ININ.Workgroup_LongestOnHoldTime>
<ININ.Workgroup_AgentsLoggedInAndActivated>79</ININ.Workgroup_AgentsLoggedInAndActivated>
<ININ.Queue_Interval name="CurrentShift">
<ININ.Workgroup_InteractionsEntered>9602</ININ.Workgroup_InteractionsEntered>
<ININ.Workgroup_InteractionsAnswered>9578</ININ.Workgroup_InteractionsAnswered>
<ININ.Workgroup_InteractionsAbandoned>25</ININ.Workgroup_InteractionsAbandoned>
<ININ.Workgroup_AverageWaitTime>00:00:01</ININ.Workgroup_AverageWaitTime>
<ININ.Workgroup_AverageHoldTime>00:00:01</ININ.Workgroup_AverageHoldTime>
<ININ.Workgroup_AverageTalkTime>00:02:17</ININ.Workgroup_AverageTalkTime>
<ININ.Workgroup_ServiceLevelTarget>N/A</ININ.Workgroup_ServiceLevelTarget>
<ININ.Workgroup_AbandonedRateTarget>N/A</ININ.Workgroup_AbandonedRateTarget>
</ININ.Queue_Interval>
</ININ.People.WorkgroupStats_Workgroup>
<ININ.People.WorkgroupStats_Workgroup name="Campaign 2">
<ININ.Workgroup_NumberAvailableForACDInteractions>11</ININ.Workgroup_NumberAvailableForACDInteractions>
<ININ.Workgroup_LongestAvailable>00:09:21</ININ.Workgroup_LongestAvailable>
<ININ.Workgroup_OnInboundACDInteractions>0</ININ.Workgroup_OnInboundACDInteractions>
<ININ.Workgroup_OnInboundACW>0</ININ.Workgroup_OnInboundACW>
<ININ.Workgroup_LongestInboundACDInteraction>N/A</ININ.Workgroup_LongestInboundACDInteraction>
<ININ.Workgroup_InteractionsWaiting>0</ININ.Workgroup_InteractionsWaiting>
<ININ.Workgroup_LongestWaitTime>N/A</ININ.Workgroup_LongestWaitTime>
<ININ.Workgroup_LongestOnHoldTime>N/A</ININ.Workgroup_LongestOnHoldTime>
<ININ.Workgroup_AgentsLoggedInAndActivated>79</ININ.Workgroup_AgentsLoggedInAndActivated>
<ININ.Queue_Interval name="CurrentShift">
<ININ.Workgroup_InteractionsEntered>5171</ININ.Workgroup_InteractionsEntered>
<ININ.Workgroup_InteractionsAnswered>5161</ININ.Workgroup_InteractionsAnswered>
<ININ.Workgroup_InteractionsAbandoned>10</ININ.Workgroup_InteractionsAbandoned>
<ININ.Workgroup_AverageWaitTime>00:00:01</ININ.Workgroup_AverageWaitTime>
<ININ.Workgroup_AverageHoldTime>00:00:01</ININ.Workgroup_AverageHoldTime>
<ININ.Workgroup_AverageTalkTime>00:02:28</ININ.Workgroup_AverageTalkTime>
<ININ.Workgroup_ServiceLevelTarget>N/A</ININ.Workgroup_ServiceLevelTarget>
<ININ.Workgroup_AbandonedRateTarget>N/A</ININ.Workgroup_AbandonedRateTarget>
</ININ.Queue_Interval>
Я в основном пытаюсь просто загрузить эти результаты в простую загрузочную таблицу. Мой XSL для этой таблицы выглядит так:
<table class="table table-hover table-dark table-striped">
<!-- Colspan for separating header -->
<col>
<colgroup span="2"></colgroup>
<colgroup span="2"></colgroup>
</col>
<thead>
<tr>
<th rowspan="2" style="text-align: left">Workgroup</th>
<th style="text-align: center" class="border" colspan="9">Workgroup Stats</th>
<th style="text-align: center" class="border" colspan="9">Queue Stats</th>
</tr>
<span>
<th class="border-left" scope="col">Available for ACD Interactions</th>
<th scope="col">Longest Available</th>
<th scope="col">On Inbound ACD Interactions</th>
<th scope="col">On Inbound ACW</th>
<th scope="col">Longest Inbound ACD Interaction</th>
<th scope="col">Interactions Waiting</th>
<th scope="col">Longest Interaction Waiting</th>
<th scope="col">Longest Hold Time</th>
<th class="border-right" scope="col">Logged on and Activated</th>
<th scope="col">Intrs Received </th>
<th scope="col">Intrs Answered</th>
<th scope="col">Intrs Abandoned</th>
<th scope="col">Avg Wait</th>
<th scope="col">Avg Hold</th>
<th scope="col">Avg Talk</th>
<th scope="col">Svc Lvl Tgt</th>
<th class="border-right" scope="col">Abandon Tgt</th>
</span>
<tr>
</tr>
</thead>
<tbody class="border-bottom">
<xsl:for-each select="IcServer/ININ.Workgroup/ININ.People.WorkgroupStats_Workgroup">
<tr class="border-bottom">
<td style="text-align: left">
<xsl:value-of select="@name"/>
</td>
<td class="border-left">
<xsl:value-of select="ININ.Workgroup_NumberAvailableForACDInteractions"/>
</td>
<div style="text-align: right">
<td>
<xsl:value-of select="ININ.Workgroup_LongestAvailable"/>
</td>
<td>
<xsl:value-of select="ININ.Workgroup_OnInboundACDInteractions"/>
</td>
<td>
<xsl:value-of select="ININ.Workgroup_OnInboundACW"/>
</td>
<td>
<xsl:value-of select="ININ.Workgroup_LongestInboundACDInteraction"/>
</td>
<td>
<xsl:value-of select="ININ.Workgroup_InteractionsWaiting"/>
</td>
<td>
<xsl:value-of select="ININ.Workgroup_LongestWaitTime"/>
</td>
<td>
<xsl:value-of select="ININ.Workgroup_LongestOnHoldTime"/>
</td>
<td class="border-right">
<xsl:value-of select="ININ.Workgroup_AgentsLoggedInAndActivated"/>
</td>
<td>
<xsl:value-of select="//ININ.Workgroup_InteractionsEntered"/>
</td>
<td>
<xsl:value-of select="//ININ.Workgroup_InteractionsAnswered"/>
</td>
<td>
<xsl:value-of select="//ININ.Workgroup_InteractionsAbandoned"/>
</td>
<td class="border-right">
<xsl:value-of select="//ININ.Workgroup_AverageWaitTime"/>
</td>
<td>
<xsl:value-of select="//ININ.Workgroup_AverageHoldTime"/>
</td>
<td>
<xsl:value-of select="//ININ.Workgroup_AverageTalkTime"/>
</td>
<td>
<xsl:value-of select="//ININ.Workgroup_ServiceLevelTarget"/>
</td>
<td class="border-right">
<xsl:value-of select="//ININ.Workgroup_AbandonedRateTarget"/>
</td>
</div>
</tr>
</xsl:for-each>
</tbody>
</table>
Извините за плотные линии. В основном, что я испытываю здесь, так это все обычные узлы на уровне '' 'ININ.Workgroup' '', но когда я пытаюсь получить доступ к материалу на узле '' 'ININ.Queue_Interval' '', они приходят обратно неверно (N / A или 0, где должны быть значения). Я попытался вставить атрибут @ CurrentShift в XPATH, например, <xsl:value-of select="ININ.Queue_Interval/@Name=CurrentShift/ININ.Workgroup_InteractionsEntered"/>
, но он все еще входит как все 0 и N / As.
В полном объеме XML, существует около 30 или более ININ.People.WorkgroupStats_Workgroup узлов, поэтому я пытаюсь сделать это в пределах одного большого l oop, который попадает как в контент на уровне рабочей группы, так и в Queue_Interval уровень, но я не уверен, что это лучший способ для go.
Я также пробовал какой-то сокращенный XPATH, то есть
<xsl:value-of select="./ININ.Workgroup_InteractionsWaiting" />
Но опять же я просто трудно сузить проблему. Спасибо за ваше понимание (и терпение)!
Вот преобразованные XML (HTML?) И неправильные значения:

Мне кажется, что это может быть просто зацикливание первого найденного значения, но не точно.