To make the stylesheet from the previous answer work, add the namespace declaration to the stylesheet (with a prefix) and use the new namespace prefix for all node names.
Therefore this should do:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:y="http://www.yahoo.com/xmlns/ApplicationTest"
>
<xsl:variable name="u2" select="document('usaa22.xml')"/>
<xsl:template match="y:city">
<xsl:choose>
<xsl:when test="$u2//y:city[y:street=current()/y:street]">
<xsl:copy>
<xsl:apply-templates select="$u2//y:city[y:street=current()/y:street]/* " />
</xsl:copy>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@* | node() " />
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="@* | node() " />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Attention: Your xml change seems not be correct:
<?xml version="1.0" xmlns="http://www.yahoo.com/xmlns/ApplicationTest" encoding="UTF-8"?>
The <?xml prologue does not allow a namespace.
The namespace should be added to the first element in your xml file:
<country xmlns="http://www.yahoo.com/xmlns/ApplicationTest">