gpt4 book ai didi

xml - Perl 通过 HTTP 解析 XML 文件并增加几行

转载 作者:数据小太阳 更新时间:2023-10-29 02:26:25 31 4
gpt4 key购买 nike

我正在尝试编写一个脚本,该脚本可以从远程服务器的 XML 文件中收集信息。远程服务器需要身份验证。我能够进行身份验证,因为它使用基本身份验证,但由于 XML 文件之前的所有行,我似乎无法解析数据。有没有办法避免获取所有这些行并正确解析 XML 文件?

代码

#! /usr/bin/perl

use LWP::UserAgent;
use HTTP::Request::Common;

use XML::Simple;

$ua = LWP::UserAgent->new;

$req = HTTP::Request->new(GET => 'https://192.168.1.10/getxml?/home/');
$ua->ssl_opts(SSL_verify_mode => SSL_VERIFY_NONE); #Used to ignore certificate
$req->authorization_basic('admin', 'test');
$test = $ua->request($req)->as_string;

print $test;
# create object
my $xml = new XML::Simple;

# read XML file
my $data = $xml->XMLin("$test");

# access XML data
print $data->{status}[0]{productID};

响应

HTTP/1.1 200 OK
Connection: close
Date: Wed, 24 Sep 2014 01:12:20 GMT
Server:
Content-Length: 252
Content-Type: text/xml; charset=UTF-8
Client-Date: Wed, 24 Sep 2014 01:11:59 GMT
Client-Peer: 192.168.1.10:443
Client-Response-Num: 1
Client-SSL-Cert-Issuer: XXXXXXXXXXXX
Client-SSL-Cert-Subject: XXXXXXXXXXXXX
Client-SSL-Cipher: XXXXXXXXXXXX
Client-SSL-Socket-Class: IO::Socket::SSL

<?xml version="1.0"?>
<Status>
<SystemUnit item="1">
<ProductId item="1">TEST SYSTEM</ProductId>
</SystemUnit>
</Status>
:1: parser error : Start tag expected, '<' not found
HTTP/1.1 200 OK

最佳答案

$test = $ua->request($req)->as_string; 调用返回整个请求( header 加内容)的字符串表示形式。

将其更改为 $test = $ua->request($req)->content;

这将只返回内容,减去标题。

关于xml - Perl 通过 HTTP 解析 XML 文件并增加几行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26007103/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com