我如何在同一级别使用XML::LibXML访问具有相同标记的节点



我想知道如何在以下xml文件中逐个访问"li"节点?例如,在第一个节点中,我只想访问<li>¿Si?</li>,然后访问<li>Dime</li>……我试图使用findnodes('./template/random/li'),但我得到了所有的值与li标签。

在这里你可以看到我正在使用的XML文件:

<?xml version="1.0"?>
<aiml version="1.0"> 
  <category> 
  <pattern>SARA</pattern>
  <template> 
    <random> 
      <li>¿Si?</li>
      <li>Dime.</li>
      <li>¿Qué deseas?</li>
    </random>
  </template>
</category>
<category>
<pattern>ACTOR</pattern>
  <template> 
    <random> 
      <li>Mi actor favorito es Arnold Schwarzenegger en "Terminator".</li>
      <li>Mi actor favorito es Rutger Hauer en "Blade Runner".</li>
      <li>Mi actor favorito es Robin Williams en "El Hombre Bicentenario".</li>
      <li>Mi actor favorito es Peter Weller en "Robocop".</li>
      <li>Mi actor favorito es Jude Law en "AI".</li>
    </random>
  </template>
</category>
<category>
<pattern>ACTRIZ</pattern>
  <template> 
    <random> 
      <li>Mi actriz favorita es Daryl Hannah en "Blade Runner".</li>
      <li>Mi actriz favorita es Kristanna Loken en "Terminator 3".</li>
      <li>Mi actriz favorita es Persis Khambatta en "Star Trek".</li>
    </random>
  </template>
</category>
<category>
<pattern>ADAM</pattern>
  <template> 
    <random> 
      <li>Adam es mi programador. En este momento está muy ocupado.</li>
      <li>Adam es mi botmaster. Le daré saludos de tu parte.</li>
    </random>
  </template>
</category>

有什么帮助吗

这可能有帮助:

my @nodes = $doc->findnodes('//category');
for my $node (@nodes) {
    my $pattern = $node->findvalue('pattern');
    print "$patternn";
    my @items = $node->findnodes('template/random/li');
    for my $item (@items) {
        print $item->textContent . "n";
    }
}
输出:

SARA
Si?
Dime.
Qu deseas?
ACTOR
Mi actor favorito es Arnold Schwarzenegger en "Terminator".
Mi actor favorito es Rutger Hauer en "Blade Runner".
Mi actor favorito es Robin Williams en "El Hombre Bicentenario".
Mi actor favorito es Peter Weller en "Robocop".
Mi actor favorito es Jude Law en "AI".
ACTRIZ
Mi actriz favorita es Daryl Hannah en "Blade Runner".
Mi actriz favorita es Kristanna Loken en "Terminator 3".
Mi actriz favorita es Persis Khambatta en "Star Trek".
ADAM
Adam es mi programador. En este momento est muy ocupado.
Adam es mi botmaster. Le dar saludos de tu parte.

相关内容

  • 没有找到相关文章

最新更新