【发布时间】:2012-08-17 13:34:57
【问题描述】:
我试图在现有 XML 文件的某个 xpath 下添加一个内容块。我不熟悉使用 Perl 进行这种 XML 解析。但我应该使用这个XML::Twig。
输入:
<model name="MDL_#USER#" oid="#LOOP#">
<appli name="ERETAIL" oid="2">
<schema desc="Parameters schema" enab="YES" name="Parameters" oid="1" prio="1">
<bean enab="YES" labl="Parameters" name="ERETAILPARA" oid="3" vers="1.0" xpos="0" ypos="0">
<para>
<root>
<row desc="password encryption mode" name="OISENCRYPT" value="BASE64"/>
</root>
</para>
</bean>
</schema>
</appli>
输出:
<model name="MDL_#USER#" oid="#LOOP#">
<appli name="ERETAIL" oid="2">
<schema desc="Parameters schema" enab="YES" name="Parameters" oid="1" prio="1">
<bean enab="YES" labl="Parameters" name="ERETAILPARA" oid="3" vers="1.0" xpos="0" ypos="0">
<para>
<root>
<row desc="password encryption mode" name="OISENCRYPT" value="BASE64"/>
<row name="INTERNAL" desc="" value="">
<row name="PATH" desc="Path" value="#PATH#" />
<row name="EXT" desc="Adresse" value="#GAIAIP#" />
</row>
</root>
</para>
</bean>
</schema>
</appli>
【问题讨论】:
-
您好,感谢您的以下输入,但如果我尝试给出如下所示的路径,我的 $twig = XML::Twig->new( twig_handlers => { '/model/appli[@name= "ERETAIL"]/schema[@name="Parameters"]/bean[@labl="Parameters"]/para/root/' => \&add_rows, }, pretty_print => 'indented', );我在处理程序中收到类似以下无法识别的表达式的错误:'/model/appli[@name="ERETAIL"]/schema[@name="Parameters"]/bean[@labl="Parameters"]/para/root/ '你能帮帮我吗
-
去掉路径中的最后一个/