from amara.xslt.processor import processor
from amara.lib import inputsource
p = processor()
_source = '''<?xml version="1.0" encoding="utf-8"?>
<ADDRBOOK>
<ENTRY ID="pa">
<NAME>Pieter Aaron</NAME>
<ADDRESS>404 Error Way</ADDRESS>
<PHONENUM DESC="Work">404-555-1234</PHONENUM>
<PHONENUM DESC="Fax">404-555-4321</PHONENUM>
<PHONENUM DESC="Pager">404-555-5555</PHONENUM>
</ENTRY>
<ENTRY ID="en">
<NAME>Emeka Ndubuisi</NAME>
<ADDRESS>42 Spam Blvd</ADDRESS>
<PHONENUM DESC="Work">767-555-7676</PHONENUM>
<PHONENUM DESC="Fax">767-555-7642</PHONENUM>
<PHONENUM DESC="Pager">800-SKY-PAGEx767676</PHONENUM>
</ENTRY>
<ENTRY ID="vz">
<NAME>Vasia Zhugenev</NAME>
<ADDRESS>2000 Disaster Plaza</ADDRESS>
<PHONENUM DESC="Work">000-987-6543</PHONENUM>
<PHONENUM DESC="Cell">000-000-0000</PHONENUM>
</ENTRY>
</ADDRBOOK>'''
source = inputsource(_source)
_trans = '''<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<HTML>
<HEAD><TITLE>Address Book</TITLE>
</HEAD>
<BODY>
<H1><xsl:text>Tabulate just the Names</xsl:text></H1>
<TABLE><xsl:apply-templates/></TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="ADDRBOOK">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="ENTRY">
<TR>
<xsl:apply-templates/>
</TR>
</xsl:template>
<xsl:template match="NAME">
<TD ALIGN="CENTER">
<B>Co: <xsl:apply-templates/></B>
</TD>
</xsl:template>
<xsl:template match="*"/>
</xsl:stylesheet>'''
trans = inputsource(_trans)
p.append_transform(trans)
print p.run(source)