【问题标题】:How to parse XML from a variable?如何从变量解析 XML?
【发布时间】:2016-11-22 04:16:48
【问题描述】:

如何用 Perl 解析 XML 中的变量?

我从我的 URL 编码数据库中获取,继续进行 URL 解码,得到一个 XML 文档。

我需要解析这个 XML。

希望我清楚

<?xml version="1.0" encoding="UTF-8"?>
<tag>
   <field type="tag">
      <content>
         <it>Ristoranti e Pizzerie</it>
         <de>Restaurants und Pizzeria</de>
         <en>Restaurants and pizzerias</en>
      </content>
      <valore>TAG14</valore>
   </field>
   <field type="tag">
      <content>
         <it>Bar, Pub ed Enoteche</it>
         <de>Bar, Pub und Enotheken</de>
         <en>Bars, pubs and wine store</en>
      </content>
      <valore>TAG15</valore>
   </field>
</tag>

【问题讨论】:

  • 你尝试过什么?请向我们展示您的尝试,只有我们可以提供帮助。
  • 有什么问题?通常,您必须在解析 XML 数据之前将其读取到变量中,尽管某些模块允许您指定文件名或文件句柄并隐藏读取的内容。你用的是哪个模块?
  • my $twig = XML::Twig -&gt; new -&gt; parse ( $xml )。当然,在不知道你真正想做什么的情况下,这就是我能给你的最多了。
  • @Borodin XML 包含在变量 $ 标记中。
  • @Sobrique 我在这个例子中取了标签的值和声音,值是 TAG15,声音是 Ristoranti e Pizzerie餐厅和比萨店餐厅和比萨店

标签: perl xml-parsing


【解决方案1】:

很难知道问题出在哪里

两个最流行的高质量 XML 模块是 XML::TwigXML::LibXML。下面的程序使用 both 从您的问题中解析相同的 XML 数据

请注意,您将只使用一个模块或另一个;不是都像这里

use strict;
use warnings 'all';

use XML::Twig;
## OR
use XML::LibXML;

my $tag = <<END_XML;
<?xml version="1.0" encoding="UTF-8"?>
<tag>
   <field type="tag">
      <content>
         <it>Ristoranti e Pizzerie</it>
         <de>Restaurants und Pizzeria</de>
         <en>Restaurants and pizzerias</en>
      </content>
      <valore>TAG14</valore>
   </field>
   <field type="tag">
      <content>
         <it>Bar, Pub ed Enoteche</it>
         <de>Bar, Pub und Enotheken</de>
         <en>Bars, pubs and wine store</en>
      </content>
      <valore>TAG15</valore>
   </field>
</tag>
END_XML

my $twig = XML::Twig->new;
$twig->parse($tag);

## OR

my $doc = XML::LibXML->load_xml(string => $tag);

【讨论】:

  • Borodin 我收到此错误 no element found at line 1, column 0, byte -1 at /usr/lib/perl5/XML/Parser.pm line 187 at elenco_negozi.pl line 195
  • 检查第一行 - 确保没有前导空格。
  • @Sobrique 没有空格。
  • 我展示的代码运行良好。仔细检查您自己的程序是否存在差异。如果您找不到问题,那么您可以提出一个新问题,我们将帮助您解决。
  • @Python_96: " ?xml 版本之前有空格
猜你喜欢
  • 2021-03-15
  • 1970-01-01
  • 2014-05-01
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多