Просто добавьте пространство имен в таблицу стилей, и оно будет работать нормально. Вот ваша таблица стилей с использованием пространства имен ms
. Вы можете использовать любой префикс, который хотите:
<xsl:stylesheet version="1.0"
xmlns:ms="http://schemas.microsoft.com/sharepoint/soap/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl ms">
<xsl:template match="//ms:Lists">
<table>
<xsl:for-each select="ms:List">
<tr>
<td>
<xsl:value-of select="@Title"/>:
</td>
<td>
<xsl:value-of select="@Description"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
Это дает следующий вывод:
<table><tr><td>Announcement1:
</td><td>Announcement 1</td></tr><tr><td>Announcement2:
</td><td>Announcement 2</td></tr></table>
В качестве альтернативы, в XSLT 2.0 вы можете просто использовать звездочку (*
) для префикса и вообще не добавлять пространство имен:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl">
<xsl:template match="//*:Lists">
<table>
<xsl:for-each select="*:List">
<tr>
<td>
<xsl:value-of select="@Title"/>:
</td>
<td>
<xsl:value-of select="@Description"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
Будет получен тот же вывод, что и в предыдущем примере.