是否有可能(如果是这样,如何)使用xml_grep从特定元素获取特定属性的值?我似乎只能在标签之间输出信息.
例:
<eid>
<identity nationalnumber="13021912354" dateofbirth="20130219" gender="male">
<name>Menten</name>
<firstname>Kasper</firstname>
<middlenames>Marie J</middlenames>
<nationality>Belg</nationality>
<placeofbirth>Sint-Truiden</placeofbirth>
<photo>base64-string</photo>
</identity>
</eid>
Run Code Online (Sandbox Code Playgroud)
从'identity'元素输出'nationalnumber'属性的值(在本例中为:13021912354)
我是Perl剧本的新手.
我想对文件进行读写操作.我将以读写模式(+ <)打开文件,并写入文件.现在,我想读取以前写过的文件.以下是我的代码:
#!/usr/bin/perl
`touch file.txt`; #Create a file as opening the file in +< mode
open (OUTFILE, "+<file.txt") or die "Can't open file : $!";
print OUTFILE "Hello, welcome to File handling operations in perl\n"; #write into the file
$line = <OUTFILE>; #read from the file
print "$line\n"; #display the read contents.
Run Code Online (Sandbox Code Playgroud)
当我显示阅读内容时,它显示一个空白行.但是文件"file.txt"有数据
Hello, welcome to File handling operations in perl
Run Code Online (Sandbox Code Playgroud)
为什么我无法阅读内容.我的代码是错误的还是我错过了什么.
在我的Unix服务器上,我执行此命令以通过unix shell从folderc复制所有内容.
wget -r -nH --accept=ismv,ismc,ism,jpg --cut-dirs=5 --level=0 --directory-prefix="/root/sstest" -o /root/sstest2.log http://site.com/foldera/folderb/folderc/
Run Code Online (Sandbox Code Playgroud)
来自folderc的所有内容实际上都复制到/ root/sstest.
在wget复制和带我回到命令提示符后不退出.
什么可能导致这种行为?
用户输入变量($ userinput)可以与值进行比较吗?
awk -F: '$1 < $userinput { printf .... }'
Run Code Online (Sandbox Code Playgroud)
这个比较表达对我来说似乎没问题,但它给出了一个错误?
以下是两个字符串 -
12/31/2011 05:34:27;U;11.comp;host=win workgroup=home username=bob cmemory=1325133456 qmemory=1325133456 smemory=1325133456 uptime=1325289867
12/31/2011 01:09:20;D;12.comp;host=win workgroup=home username=sam cmemory=1325151687 qmemory=1325151687 smemory=1325151687 uptime=1325228636 session=4677 downtime=1325270175 Exit_status=0
Run Code Online (Sandbox Code Playgroud)
从上面的字符串我要挑host,workgroup,username,uptime和downtime在Perl中使用正则表达式的值.
以下是我的Perl脚本 -
foreach $line (<FILE>) {
if($line =~ m<\d{2}/\d{2}/\d{4}\s+\d{2}:\d{2}:\d{2};[U|D].*host=(\w+)\s+workgroup=(\w+)\s+hostname=(\w+)\s+.*uptime=(\d+)\s+.*(downtime=)?(\d*)>){
my $host = $1;
my $workgroup = $2;
my $hostname = $3;
my $uptime = $4;
my $downtime = $5;
print "host=$host workgroup=$workgroup hostname=$hostname uptime=$uptime downtime=$downtime\n";
}
}
Run Code Online (Sandbox Code Playgroud)
我面临的唯一问题是因为downtime.该属性可能不存在于该行中.我无法正确选择此字段.
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
Run Code Online (Sandbox Code Playgroud)
我尝试添加 2>/dev/null、&>/dev/null 等,似乎没有什么可以抑制警告。
我正在尝试使用AWK脚本根据条件对xml文件进行更新.有人可以帮我吗?
students.xml
<students>
<student>
<stuId>1</stuId>
<name>A</name>
<mark>75</mark>
<result></result>
</student>
<student>
<stuId>2</stuId>
<name>B</name>
<mark>35</mark>
<result></result>
</student>
<student>
<stuId>1</stuId>
<name>C</name>
<mark>94</mark>
<result></result>
</student>
</students>
Run Code Online (Sandbox Code Playgroud)
我到目前为止尝试的代码
我可以使用下面的代码提取标签值
BEGIN { RS="<[^>]+>" }
{ print RT, $0 }
Run Code Online (Sandbox Code Playgroud)
这将按预期打印所有标记和值.
我想更新<result>标记为通过,如果标记> 40别的失败
产量
<students>
<student>
<stuId>1</stuId>
<name>A</name>
<mark>75</mark>
<result>pass</result>
</student>
<student>
<stuId>2</stuId>
<name>B</name>
<mark>35</mark>
<result>fail</result>
</student>
<student>
<stuId>1</stuId>
<name>C</name>
<mark>94</mark>
<result>pass</result>
</student>
</students>
Run Code Online (Sandbox Code Playgroud)
有人能协助我吗?
我试图找出如何发送Down的木偶戏,我试图与INT代码40或Down字符串,但没有任何作品。
有没有适当的方法?看完后看不出来~/node_modules/puppeteer/lib/Input.js
const elementHandle = await page.$('selector');
await elementHandle.type('something');
await page.keyboard.press(40); // fail
Run Code Online (Sandbox Code Playgroud) 我试图通过运行perl脚本来删除我的文本中的重音符号,其中我使用tr运算符(我发现的更简单的方法):
我试过了:
tr/àâäéèëêîïôöûùüç/aaaeeeeiioouuuc/;
Run Code Online (Sandbox Code Playgroud)
它删除了重音,但是我得到了'aa'而不是'a','ae'而不是'e'等字符.
我使用saxon HE 9.6,它非常适合在解析格式良好的XML文件时使用XPath 3.
但我想知道如何将expath-http-client(或任何其他工作解决方案)与Saxon结合起来,以便能够解析realLife©®™(可能已损坏)的HTML.(Java不是我更好的技能).
我搜索谷歌很多小时没有任何工作解决方案.我尝试过类似的东西:
xquery_file.xsl:
xquery version "1.0";
declare namespace http="http://expath.org/ns/http-client";
let $url := 'http://stackoverflow.com'
let $response := http:send-request(
<http:request href="{$url}" method="get"/>
) return
<echo-results>
{$response}
</echo-results>
Run Code Online (Sandbox Code Playgroud)
Shell命令取自expath-http-client-saxon-0.10.0的README
saxon --repo /usr/share/java/expath/repo -xsl:sample/simple-get.xsl -it:main
Run Code Online (Sandbox Code Playgroud)
要么
saxon --repo /usr/share/java/expath/repo -xsl:xquery_file.xsl -it:main
Run Code Online (Sandbox Code Playgroud)
没有成功.我明白了:Transformation failed: Unknown configuration property http://saxon.sf.net/feature/repo
理想情况下,我最终要做的是直接从命令行查询一个URL,而不是XQuery文件,而是一个XPath表达式(如果可能的话).我很确定那里的一些XML/Java/XPath专家有我正在寻找的解决方案.
/usr/share/java/expath/repo 包含:
/usr/share/java/expath/repo
??? expath-http-client-saxon-0.10.0
? ??? cxan.xml
? ??? expath-http-client-saxon
? ? ??? jar
? ? ? ??? expath-http-client-java.jar
? ? ? …Run Code Online (Sandbox Code Playgroud)