Thread XML::Twig und regexp in twig_handlers (4 answers)
Opened by shi8dao at 2011-04-27 14:48

shi8dao
 2011-04-27 14:48
#148023 #148023
User since
2011-04-26
28 Artikel
BenutzerIn
[default_avatar]
Ich habe hier eine XML Datei, in der das folgende vorkommt:
Code: (dl )
1
2
3
4
5
6
7
<result>
<target type="ziel">
<tag1>123</tag1>
<tag2>123</tag2>
...
</target>
</result>


Ich moechte die tag Tags mit Twig behandeln.
Meine bisherigen Versuche waren:
Code (perl): (dl )
1
2
3
4
my $twig = new Xml::Twig(twig_handlers =>
{
  "/result/target/tag\d" => \&meine_parse_funktion,
});


Code (perl): (dl )
1
2
3
4
my $twig = new Xml::Twig(twig_handlers =>
{
  "/result/target/tag[1-3]" => \&meine_parse_funktion,
});

Bei der ersten 'Loesung' bekomme ich leider nur die Fehlermeldung "Unrecognized escape \d passed through".
Bei der zweiten ruft er die Funktion nicht auf.

Moeglicherweise liegt der Fehler an meinen mangelhaften Perl Kenntnissen oder ich missverstehe die Twig Doku:

Twig Doku
This argument consists of a hash { expression = \&handler}> where expression is a an XPath-like expression (+ some others).

XPath expressions are limited to using the child and descendant axis (indeed you can't specify an axis), and predicates cannot be nested. You can use the string, or string(<tag>) function (except in twig_roots triggers).

Additionally you can use regexps (/ delimited) to match attribute and string values.

Last edited: 2011-04-27 14:58:09 +0200 (CEST)

View full thread XML::Twig und regexp in twig_handlers