XML 变量值
XML Value to variables
我有一个 perl 脚本 returns XML 结果,我试图将这些值设置为变量,但我什至似乎无法将它们分开,即使 XML::Simple
我试过:
"print $xml->{"至"}{"from"}{"heading"}{"body"}。"\n";"
到 return XML 值没有运气,但我需要将它们设置为变量:
- $到
- $来自
- $标题
- $body
这是我的资料:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
use strict;
use warnings;
use LWP::Simple;
use XML::Simple;
my $xml;
my $XML_Server = "http://videotuber.atwebpages.com/cgi-bin/cgitest.pl";
my $UserContent = get($XML_Server);
print qq~$UserContent \n\n~;
print $xml->{"to"}{"from"}{"heading"}{"body"} . "\n";
有很多事情让人很难帮助你:
- 您没有包含 XML 输入的示例
- 您没有包含代码预期输出的示例
- 您提供的 URL 包含无效的内容 XML
- 您正在尝试使用 XML::Simple - 没有人推荐
- 您显然不了解 Perl 引用,所以您只是编造
$xml->{"to"}{"from"}{"heading"}{"body"}
并说它不起作用
我建议更改生成您正在获取的 URL 的代码以创建有效的 XML(<?xml ...
之前没有空行
我还建议改用 XML::LibXML。这里是 a tutorial.
这里有一些代码可以帮助您入门:
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use XML::LibXML;
my $xml_server = "http://videotuber.atwebpages.com/cgi-bin/cgitest.pl";
my $user_content = get($xml_server);
my $dom = XML::LibXML->load_xml(string => $user_content);
my $to = $dom->findvalue('/note/to');
my $from = $dom->findvalue('/note/from');
my $heading = $dom->findvalue('/note/heading');
my $body = $dom->findvalue('/note/body');
print "To: $to\n";
print "From: $from\n";
print "Heading: $heading\n";
print "Body: $body\n";
编辑
为了后代,引用的 URL 返回的 XML 返回的是这样的东西:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>alice</to>
<from>bob</from>
<heading>reminder</heading>
<body>don't forget the milk</body>
</note>
(但在初始 XML 声明之前有一个空行)
我有一个 perl 脚本 returns XML 结果,我试图将这些值设置为变量,但我什至似乎无法将它们分开,即使 XML::Simple
我试过: "print $xml->{"至"}{"from"}{"heading"}{"body"}。"\n";"
到 return XML 值没有运气,但我需要将它们设置为变量:
- $到
- $来自
- $标题
- $body
这是我的资料:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
use strict;
use warnings;
use LWP::Simple;
use XML::Simple;
my $xml;
my $XML_Server = "http://videotuber.atwebpages.com/cgi-bin/cgitest.pl";
my $UserContent = get($XML_Server);
print qq~$UserContent \n\n~;
print $xml->{"to"}{"from"}{"heading"}{"body"} . "\n";
有很多事情让人很难帮助你:
- 您没有包含 XML 输入的示例
- 您没有包含代码预期输出的示例
- 您提供的 URL 包含无效的内容 XML
- 您正在尝试使用 XML::Simple - 没有人推荐
- 您显然不了解 Perl 引用,所以您只是编造
$xml->{"to"}{"from"}{"heading"}{"body"}
并说它不起作用
我建议更改生成您正在获取的 URL 的代码以创建有效的 XML(<?xml ...
我还建议改用 XML::LibXML。这里是 a tutorial.
这里有一些代码可以帮助您入门:
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use XML::LibXML;
my $xml_server = "http://videotuber.atwebpages.com/cgi-bin/cgitest.pl";
my $user_content = get($xml_server);
my $dom = XML::LibXML->load_xml(string => $user_content);
my $to = $dom->findvalue('/note/to');
my $from = $dom->findvalue('/note/from');
my $heading = $dom->findvalue('/note/heading');
my $body = $dom->findvalue('/note/body');
print "To: $to\n";
print "From: $from\n";
print "Heading: $heading\n";
print "Body: $body\n";
编辑
为了后代,引用的 URL 返回的 XML 返回的是这样的东西:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>alice</to>
<from>bob</from>
<heading>reminder</heading>
<body>don't forget the milk</body>
</note>
(但在初始 XML 声明之前有一个空行)