[Catalyst] XPath, DOM problem
Herr Verdieck Götz
goetz at verdieck.de
Tue Jul 8 11:23:14 BST 2008
you are right, I should stick to the MVC pattern.
But I think it is curious that XML.Simple finds the path and XPath/DOM
Am 08.07.2008 um 11:37 schrieb Tomas Doran:
> On 8 Jul 2008, at 09:00, Herr Verdieck Götz wrote:
>> I try to generate a site content menu from a xml file.
>> In my TT file I have the following syntax:
>> # USE prod_tree = XML.Simple('config/xml/hele_de_tree.xml'); # OK
>> this works
>> USE xpath = XML.XPath('config/xml/hele_de_tree.xml'); # ERROR
>> #USE dom = XML.DOM;
>> #prod_tree = dom.parse('config/xml/sitemap.xml'); # ERROR
>> The XML.Simple version is ok, but
>> when I try to use XPath - or DOM- I get the message:
>> Errot message:
>> Couldn't render template "plugin error - Cannot open file 'config/
>> xml/hele_de_tree.xml' at /Library/Perl/5.8.8/XML/XPath.pm line 53.
>> I use Catalyst 5.7014 and Template-Toolkit-2.19.
>> I also tested XPath with a small script without problems. So the
>> combination with TT or Catalyst causes the error.
> I'd guess it's not finding the correct path..
> You probably want to say something like:
> USE xpath = XML.XPath(c.path_to('config', 'xml', 'hele_de_tree.xml'));
> so that you are not relying on the PWD being what you expect.
> However, there is a good argument that you shouldn't be doing this
> in a template - this is data/domain logic, and therefore separation
> of concerns says that this should be in the Model.
> I'd create a model which creates the appropriate data structures for
> you, and a controller which defines the file path, feeds it to the
> model, and then pushes the returned data structure/objects into the
> stash, allowing the templates to them simply iterate over them.
> This buys you a lot of future proofing, as if you start wanting to
> pre-process your XML in some way before passing it to the template,
> you can trivially do so, without having to change any of the code in
> your templates.
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://firstname.lastname@example.org/
> Dev site: http://dev.catalyst.perl.org/
More information about the Catalyst