У меня есть структура XML, как показано ниже
<warning file="project\Src\a.c" line="45" message="intended 7.7. 3218 Decl File scope static, 'DSVS_SLOW_CH_RCVD_INFO_INIT', only accessed in one function."/>
<warning file="project\Src\x.c" line="132" message="deviation 3218 Decl File scope static,">
Я хочу, чтобы строка файла и сообщение приходили в виде таблицы.Сообщение сопоставляется с регулярным выражением и должно быть принято.
Сообщение содержит ранг - (предполагаемый или отклонение) необязательный стандарт, правило и описание.и он разделен пробелом
В моем примере первый тег имеет file = project \ Src \ ac, line = 45, rank = предназначен, стандарт 7.7.Правило 3218 и описание = Decl Область действия файла ....
Во втором примере стандарт отсутствует.
Что мне нужно, так это вывод
<tr>
<td>Filename</td>
<td>Line</td>
<td>Rank</td>
<td>Coding Standard</td>
<td>Rule</td>
<td>Description</td>
</tr>
<tr>
<td>project\Src\a.c </td>
<td>45</td>
<td>intended</td>
<td>7.7.</td>
<td>3218</td>
<td>Decl File scope...</td>
</tr>
<tr>
<td>project\Src\x.c </td>
<td>132</td>
<td>deviation</td>
<td></td>
<td>3218</td>
<td>Decl File scope...</td>
</tr>
Что я пробовалпока что
<tr>
<td>Filename</td>
<td>Line</td>
<td>Rank</td>
<td>Standard</td>
<td>Rule</td>
<td>Description</td>
</tr>
<xsl:for-each select="issues/warning">
<tr>
<td><xsl:value-of select="@file"/></td>
<td><xsl:value-of select="@line"/></td>
</tr>
<xsl:analyze-string select="@message"
regex="\s*([intended|deviation])\s+(.*)\s+(\d+)\s+(.*)">
<xsl:matching-substring>
<tr>
<td><xsl:value-of select="regex-group(1)"/></td>
<td><xsl:value-of select="regex-group(2)"/></td>
<td><xsl:value-of select="regex-group(3)"/></td>
<td><xsl:value-of select="regex-group(4)"/></td>
</tr>
</xsl:matching-substring>
<xsl:non-matching-substring>
<tr>
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</tr>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:for-each>
Но это не работает, как я ожидал.Ряды и значения смешиваются.Как определить, присутствует ли необязательный стандарт или нет?Любые советы по решению проблемы приветствуются.