Please find below an XSLT stylesheet which demonstrates how to upgrade a given xml to a similar one using some priority attributes.
It leaves comments attributes and most element not covered by higher priority templates.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output omit-xml-declaration="yes" indent="no"/>
<!-- -->
<!-- just pretty format WOS records to simple xml elements -->
<!-- -->
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<!-- Copy elements as original -->
<xsl:template match="*" priority="1">
<xsl:element name="{name()}">
<xsl:apply-templates select="./@*"/>
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<!-- Copy comment text and attributes as original -->
<xsl:template match="comment()|text()|@*">
<xsl:copy-of select="."/>
</xsl:template>
<!-- this template match owner before general * ones -->
<!-- so we can then adjust it manually -->
<xsl:template match="//records/*[label]" priority="2">
<xsl:apply-templates select="./value"/>
</xsl:template>
<xsl:template match="//records/*[label]/value" priority="2">
<xsl:element name="{translate(../label, '.','_') }">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>