栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Perl脚本来解析需要身份验证的Jenkins作业(config.xml)文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Perl脚本来解析需要身份验证的Jenkins作业(config.xml)文件

我想出了一种使用经过身份验证的请求输出结果的方法。由于请求输出xml内容以及标头响应,即:

HTTP/1.1 200 OKConnection: closeServer: Jetty(8.y.z-SNAPSHOT)Content-Type: application/xmlClient-Date: Wed, 30 Jul 2014 14:49:12 GMTClient-Peer: 127.0.0.1:8080Client-Response-Num: 1<?xml version... <project>  ....  ....</project>

我使用正则表达式 提取输出的xml部分并将其保存到文件中。从那里,我使用LibXML的 parse_file
方法来解析新写入的文件。(我有一个单独的子例程,该例程使用 findnodes
方法提取我想提取的特定节点。由于该解决方案处理了我遇到的身份验证问题,所以我没有发布它)。

解:

use strict;use warnings;use XML::LibXML;use Path::Class;use LWP;use HTTP::cookies;my $serverXmlUrl = "http://localhost:8080/job/jobName/config.xml";my $uagent = LWP::UserAgent->new(cookie_jar => HTTP::cookies->new());my $request = HTTP::Request->new( GET => $serverXmlUrl );$request->authorization_basic( 'UserName', 'Password' );my $result = $uagent->request($request);if ( !$result->is_success ) {    print "Failedn";} else {    print "Success!n";    # Create new file to write to    my $dir         = dir(".");    my $file        = $dir->file("job.xml");    my $file_handle = $file->openw();    my $xml_content = $result->as_string; # full result output    # Regex to store only xml content    $xml_content =~ s/.*(<?xml.*)/$1/s;     # Save xml_content to file    $file_handle->print($xml_content);    $file_handle->close();    # Parse newly written file    print "Parsing file... n";    my $parser = XML::LibXML->new();    my $doc    = $parser->parse_file($file);    print $doc;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392182.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号