- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 xml 文件 (client_23.xml)
我需要根据其他 xml 文件中的内容在特定部分添加几行 (abc_lop.xml)
.
这是我的 abc_lop.xml
你看到我有很多ClientField
的文件符合 name
, pptype
和 dataType
<Hello version="100">
<DataHolder numberOfFields="67">
<ClientField name="target" pptype="aligning" dataType="string">
<Value value="panel_3646"/>
<Value value="panel_3653"/>
</ClientField>
<ClientField name="category_3652_0_count" pptype="symetrical" dataType="double"/>
<ClientField name="pme.age" pptype="symetrical" dataType="double"/>
<ClientField name="pme.gender" pptype="aligning" dataType="string">
<Value value=""/>
<Value value="F "/>
<Value value="NA"/>
</ClientField>
</DataHolder>
</Hello>
我需要阅读这个文件并提取 name
来自那些ClientField
行,如果它是 pptype
不是 aligning
然后我需要为每个名称构造这一行:下面是两个名称的示例,只有第一个值不同,除此之外,其他两个始终相同。
<eval>upsert("category_3652_0_count", 0, $calty_doubles)</eval>
<eval>upsert("category_3652_2_count", 0, $calty_doubles)</eval>
现在如果它是 pptype
是aligning
,然后像这样构造线:
<eval>upsert("target", "NA", $calty_strings)</eval>
<eval>upsert("pme.gender", "NA", $calty_strings)</eval>
我必须在 client_23.xml
中进行所有这些更改文件,然后用它创建一个新文件,这样我的新文件看起来像这样作为一个例子:我将有一个名为 data_values
的函数我需要在 <block>
中添加以上内容标记如下所示。
<function>
<name>data_values</name>
<variables>
<variable>
<name>temp</name>
<type>double</type>
</variable>
</variables>
<block>
<eval>temp = 1</eval>
<eval>upsert("category_3652_0_count", 0, $calty_doubles)</eval>
<eval>upsert("category_3652_2_count", 0, $calty_doubles)</eval>
<eval>upsert("target", "NA", $calty_strings)</eval>
<eval>upsert("pme.gender", "NA", $calty_strings)</eval>
</block>
</function>
这是我目前在 client_23.xml
中的内容文件,所以添加后,它将如下所示:
<function>
<name>data_values</name>
<variables>
<variable>
<name>temp</name>
<type>double</type>
</variable>
</variables>
<block>
<eval>temp = 1</eval>
</block>
</function>
我想出了下面的 perl 脚本,但每当我尝试运行它时,它都没有运行,而且我看到了一些错误:
#!/usr/bin/perl
use strict;
use warnings;
use XML::LibXML;
# Open the main XML file and locate the
# <block> element that we need to insert into
#
my $doc = XML::LibXML->load_xml(
location => 'client_23.xml',
no_blanks => 1,
);
my $block = $doc->find('/function/block')->get_node(1);
# Open the secondary XML file and find all the <ClientField> elements
# that contain the data we need to insert
#
my $abc = XML::LibXML->load_xml(location => 'abc_lop.xml');
for my $field ( $abc->find('/Hello/DataHolder/ClientField')->get_nodelist ) {
my ($name, $pptype) = map $field->getAttribute($_), qw/ name pptype /;
my $text = $pptype eq 'aligning' ?
sprintf q{upsert("%s", "NA", $calty_strings)}, $name :
sprintf q{upsert("%s", 0, $calty_doubles)}, $name;
$block->appendTextChild('eval' , $text);
}
print $doc->toString(2);
我使 perl 脚本可执行并像这样运行它,但出现错误。怎么了?
./tester.perl: line 1: use: command not found
./tester.perl: line 2: use: command not found
./tester.perl: line 4: use: command not found
./tester.perl: line 9: syntax error near unexpected token `('
./tester.perl: line 9: `my $doc = XML::LibXML->load_xml('
更新:-
使用错误现已修复。我看到这个错误:
Can't locate XML/LibXML.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at ./tester.perl line 5.
BEGIN failed--compilation aborted at ./tester.perl line 5.
我需要安装什么吗?
最佳答案
Can't locate XML/LibXML.pm
因此您需要安装 XML::LibXML 模块。尝试其中一个命令。
如果您有 sudo
访问权限,并且在 Debian Linux 或 Ubuntu 上,请运行此命令:
sudo apt-get install libxml-perl
如果您有 sudo
访问权限并且在 Red Hat、CentOS、Fedora 或 Amazon Linux 上:
sudo yum install perl-XML-LibXML
在其他带有 sudo
的平台上(例如 OS X),这应该可以工作,但是如果您还没有运行 cpan
,您将不得不回答很多问题之前:
sudo cpan XML::LibXML
如果您没有 sudo
访问权限,请在没有 sudo
的情况下运行相同的命令,并在询问方法时选择 local::lib
你想要:
cpan XML::LibXML
关于xml - 无法运行 perl 脚本,找不到使用命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32637326/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!