xml 要素のコンテンツを更新しようとしています。XML::LibXML を使用しており、このライブラリを使用する必要があります。ここにいくつかのサンプルデータがあります。
<data-table>
<data>
<number>1</number>
<letter>one</letter>
</data>
<data>
<number>2</number>
<letter>two</letter>
</data>
</data-table>
私がやりたいのは、数字が2の場合、手紙の内容を「紫」に変更することです.しかし、それが機能するようにXpathを指定するのに問題があると思います. 次のエラーが表示されます
「パッケージ「XML::LibXML::NodeList」経由でオブジェクト メソッド「setData」が見つかりません」
私はこれに何日も苦労してきたので、どんな助けも大歓迎です。
use XML::LibXML;
my $p = XML::LibXML->new;
my $d = $p->parse_fh(\*DATA);
for my $node ($d->findnodes('//data-table/data'))
{
for my $childNode ($node->findnodes('./number/text()'))
{
if($childNode->textContent() == '1')
{ # here is where the problem is!
my $changeNumerNode = $node->findnodes('./letter/text()');
$changeNumerNode->setData("Purple");
}
}
}
print $d->toString;
__DATA__
<data-table>
<data>
<number>1</number>
<letter>one</letter>
</data>
<data>
<number>2</number>
<letter>two</letter>
</data>
</data-table>