Hi.
I'm building an XML file.
It is within an OOP structure and is pretty simple.
The method is ...
/**
* Turn an error from the W2GlobalData service into normal document as
this will make it easier to integrate downstream.
*
* @param \SimpleXMLElement $o_XML
* @return \SimpleXMLElement
* @todo Build document to be a correct request header with the
embedded error message.
*/
public function normaliseError($o_XML)
{
$s_XML = <<< END_XML
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<service>UK Verification (Edited)</service>
<searchtext>
<forename>{$this->a_RequestData['forename']}</forename>
<middlename>{$this->a_RequestData['middlename']}</middlename>
<surname>{$this->a_RequestData['surname']}</surname>
<address1>{$this->a_RequestData['address1']}</address1>
<address2>{$this->a_RequestData['address2']}</address2>
<postcode>{$this->a_RequestData['postcode']}</postcode>
<gender>{$this->a_RequestData['gender']}</gender>
<dob>{$this->a_RequestData['dob']}</dob>
<drivinglicence>{$this->a_RequestData['drivinglicence']}</drivinglicence>
<passport>{$this->a_RequestData['passport']}</passport>
<mpan>{$this->a_RequestData['mpan']}</mpan>
</searchtext>
<clientreference>{$this->a_RequestData['clientreference']}</clientreference>
<resultcount/>
<searchdate/>
<expiry/>
<timetaken/>
<reportemailsent/>
<error>
{$o_XML->error}
</error>
</doc>
END_XML;
return new SimpleXMLElement($s_XML);
}
Nothing particularly difficult to understand, but I just don't like having
the XML embedded this way.
Ideally, I want a scope aware include function, so I can say _something_
like ...
$s_XML = require_once __CLASS__ . DIRECTORY_SEPARATOR .
'normalisedError.xml';
and have the include be aware of the local scope (so $o_XML and $this are
all happy).
I know I can write a template parser, but I'm just missing an obvious
solution that isn't fat and doesn't require a massive learning for the
other devs.
Ideas?
Thanks for reading.
Richard.
--
Richard Quadling
Twitter : @RQuadling
EE : http://e-e.com/M_248814.html
Zend : http://bit.ly/9O8vFY