0

我想知道如何在以下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>

有什么帮助吗?

4

1 回答 1

0

这可能会有所帮助:

my @nodes = $doc->findnodes('//category');
for my $node (@nodes) {
    my $pattern = $node->findvalue('pattern');
    print "$pattern\n";
    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.
于 2014-05-07T01:09:57.563 回答