It might be a good idea to spend a few hours with a good book, it looks as if you're trying to do this by trial and error without understanding the concepts.
You want one template rule for "/":
<xsl:template match="/">
<xsl:apply-templates select="/ListingDataFeed/Listings/Listing"/>
</xsl:template>
and one for Listing:
<xsl:template match="Listing">
<xsl:value-of select="ListingID" />
<xsl:text>|</xsl:text>
<xsl:value-of select="PortalDomain" />
<xsl:text>|</xsl:text>
<xsl:value-of select="RegionalMLSNumber/@publiclyVisible" />
<xsl:text>|</xsl:text>
<xsl:value-of select="RegionalMLSNumber" />
<xsl:text>|</xsl:text>
<xsl:value-of select="ListDate" />
<xsl:text>|</xsl:text>
<xsl:value-of select="SoldDate" />
<xsl:text>|</xsl:text>
<xsl:value-of select="LastUpdateDate" />
<xsl:text>|</xsl:text>
<xsl:value-of select="Status" />
<xsl:text>|</xsl:text>
<xsl:value-of select="Title" />
</xsl:template>
and template rules always go immediately inside an xsl:stylesheet element.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference