Perl LibXML читает XML-файл с пространством имен, не читающим файл

Я должен прочитать XML-файл, используя Perl LibXML. Я буду читать много файлов XML. Но у этого файла есть пространство имен ниже, это мой пример XML-файла.

<?xml version="1.0" encoding="UTF-8"?>
<alto xmlns="http://www.loc.gov/standards/alto/ns-v2#"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.loc.gov/standards/alto alto-v2.0.xsd">
<Description>
<MeasurementUnit>inch1200</MeasurementUnit>
</Description>
</alto>

Вот мой Perl-код для чтения вышеуказанного файла

use XML::LibXML;

$xml = 'test.xml';

my $parser =XML::LibXML->new();

eval{
   $doc = $parser->parse_file($xml) or die;
};

if($@){
   return;
}
else{
   $v = $doc->findvalue('/alto/Description/MeasurementUnit');
   print "value\t".$v;
}

Но когда я изменил xmlns=" в xmlns:x=" Это будет работать.

Но мой xml не содержит xmlns:x это только оно содержит xmlns="value",

Пожалуйста, помогите мне решить эту проблему.

0 ответов

Другие вопросы по тегам