Вы можете использовать этот XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/wrapper">
<wrapper2>
<xsl:apply-templates select="PV[starts-with(@V,'PS')]"/>
<xsl:apply-templates select="PV[starts-with(@V,'Other')]"/>
</wrapper2>
</xsl:template>
<xsl:template match="//PV">
<xsl:variable name="elementName1" select="substring-before(./@V,':')"/>
<xsl:variable name="elementName23" select="substring-after(./@V,':')"/>
<xsl:variable name="elementName2"
select="translate(substring-before($elementName23,':'), ' ', '_')"/>
<xsl:variable name="elementName3"
select="translate(substring-after($elementName23,':'), ' ', '_')"/>
<xsl:if test="not($elementName1 = '')">
<xsl:element name="{$elementName1}">
<xsl:element name="{$elementName2}">
<xsl:element name="{$elementName3}"> </xsl:element>
</xsl:element>
</xsl:element>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Имя тега не может иметь пробелов, поэтому вам необходимо заменить их другим символом.Это делается здесь путем замены пробелов на '_'.