файл XML выглядит следующим образомPerl XML :: LibXML - не может заменить Заменить значение элемента
<?xml version="1.0"?>
<application name="pos">
<artifact id="example.war" type="war" cycle="ReleaseX-Sprint1">
<jira>tick-1,tick-2,</jira>
<jenkins>http://localhost:0000/hudson</jenkins>
<kportal/>
<scm>
<transaction id="111" user="user1">
<file name="a/b/c/d.txt"/>
<file name="x/y/z.xml"/>
</transaction>
</scm>
</artifact>
</application>
Я хочу, чтобы добавить значение в kportal
узла для конкретного артефакта узла так, что он выглядит как <kportal>KPORTAL-1</kportal>
Мой код выглядит следующим образом
my $manifestDoc = $manifestFileParser->parse_file($manifestFile);
my $xpathKportal = qq(//application[\@name="$applicationName"]/artifact[\@id="$artifactID"]/kportal);
my $newdeploymentNode = $manifestDoc->findnodes($xpathKportal);
$newdeploymentNode->removeChildNodes();
$newdeploymentNode->appendText('KPORTAL-1');
я получаю ошибку
Can't locate object method "removeChildNodes" via package "XML::LibXML::NodeList"
мой $ xpathKportal = кв.кв (// приложение [\ @ имя = "$ ApplicationName"]/артефакт [\ @ ид = "$ артефакта"]/kportal); my $ var = "KPORTAL-1"; для моего $ kportal_text ($ manifestDoc-> findnodes ($ xpathKportal)) { $ kportal_text-> appendText ($ var); } Я изменил свой код на предыдущий, и он сработал. – user1470220