我有以下文件 log.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<EntryList xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/">
<Entries>
<RankedEntry>
<Entry>
<id>1</id>
<code1>001</code1>
<displayName>Entry 1</displayName>
<code2>003</code2>
<code3>0100000000000005203</code3>
<actualName>Entry Number 1</actualName>
<entryType>1</entryType>
<metaScore>1</metaScore>
<usage>81</usage>
</Entry>
<factor>30.738496780395508</factor>
<virtualFactor>45.738494873046875</virtualFactor>
</RankedEntry>
<RankedEntry>
<Entry>
<id>2</id>
<code1>001</code1>
<displayName>Entry 2</displayName>
<code2>003</code2>
<code3>0200000000000005203</code3>
<actualName>Entry Number 2</actualName>
<entryType>26</entryType>
<metaScore>1</metaScore>
<usage>61</usage>
</Entry>
<factor>40.738496780395508</factor>
<virtualFactor>55.738494873046875</virtualFactor>
</RankedEntry>
<RankedEntry>
<Entry>
<id>3</id>
<code1>001</code1>
<displayName>Entry 3</displayName>
<code2>003</code2>
<code3>0300000000000005203</code3>
<actualName>Entry Number 3</actualName>
<entryType>3</entryType>
<metaScore>1</metaScore>
<usage>41</usage>
</Entry>
<factor>50.738496780395508</factor>
<virtualFactor>65.738494873046875</virtualFactor>
</RankedEntry>
</Entries>
</EntryList>
如果我运行以下命令,在使用 xmlstarlet 1.6.1 的 Window 7 上,
xml sel -t -m "/EntryList/Entries/RankedEntry/Entry/entryType"-v "."日志文件
预期结果是:
1
26
3
实际: 但是我没有得到任何返回
有什么解决办法吗?
最佳答案
您必须考虑命名空间。使用 XMLStarlet -N 选项定义命名空间前缀:
-N <name>=<value> - predefine namespaces (name without 'xmlns:')
ex: xsql=urn:oracle-xsql
Multiple -N options are allowed.
然后这个 XMLStarlet 命令:
xml sel -N s=http://schemas.datacontract.org/2004/07/ -t -v "/s:EntryList/s:Entries/s:RankedEntry/s:Entry/s:entryType" log.xml
将产生请求的输出:
1
26
3
关于xml sel -t -m 根本不适合我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25889670/
有几种方法:first_or_create_by、find_or_create_by等,它们的工作原理是:与数据库对话以尝试找到我们想要的东西如果我们找不到,就自己做保存到数据库显然,并发调用这些方法可能会使两个线程都找不到它们想要的东西,并且在第3步中一个线程会意外失败。似乎更好的解决方案是,创建或查找即:提前在您的数据库中创建合理的唯一性约束。如果你想保存一些东西,就保存它如果有效,那就太好了。如果它因为RecordNotUnique异常而无法工作,它已经存在,太好了,加载它那么在什么情况下我想使用Rails内置的东西而不是我自己的(看起来更可靠)create_or_find?
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion首先,我想避免一场关于语言的口水战。可供选择的语言有Perl、Python和Ruby。我想提一下,我对所有这些都很满意,但问题是我不能只专注于一个。例如,如果我看到一个很棒的Perl模块,我必须尝试一下。如果我看到一个不错的Python应用程序,我必须知道它是如何制作的。如果我看到RubyDSL或一些Ruby巫术,我就会迷上Ruby一段时间。目前我是一名Java开发人员,但计划在不久的将来
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。我是一名Ruby程序员,由于目前的项目需要学习RPGIV。我想学习原始类型、数据结构、控制流、体系结构等。在线资源和纸质书一样好。我应该从哪本书或在线教程开始?
Lisp是否适合Web编程/应用程序(交互式),就像ruby和php一样?需要考虑的事情是:易于使用可部署性难度(尤其是对于编程初学者而言)(编辑)在阅读PaulGraham'sessay之后,我特别提到了CommonLisp.将是我的第一门编程语言。在这方面。这样做合适吗?我听说Clojure的宏功能不如CommonLisp的强大,这就是我尝试学习Clojure的原因。它教授编程并且非常强大。 最佳答案 Lisp是一个语系,而不是单一的语言。为了稍微回答您的问题,是的,存在用于各种Lisp方言的Web框架,例如用于Common
我编写的脚本在启动时运行,需要设置环境变量,但是Ruby的Exceptions,是最好的?我使用了LoadError,我只是想尽可能具有描述性并遵循适当的约定。其次,除了检查环境变量的长度外,我找不到其他方法来查看是否设置了环境变量,但这似乎不太优雅。beginraiseLoadErrorifENV['FOO'].to_s.length==0system"openhttp://example.com/"+ENV['FOO']rescueException=>eputs"=>#{e}FOOenvironmentvariablenotset"end 最佳答案
当我有一个很长的正则表达式时,比如cucumber步骤定义,最好的换行方式是什么?例如,我想要这样的东西:When/^Ihaveaverylongstepdefinitionhereinmystepdefinitionfile$/do...end分成两行(这行不通:)When/^Ihaveaverylongstepdefinitionherein/\/mystepdefinitionfile$/do...end2018年更新如果您专门来这里吃cucumber,请使用cucumberexpressions是正则表达式的一个很好的替代品 最佳答案
我看到两种样式都被广泛使用:#1lambda{raise"Boom"}.shouldraise_error和#2expect{raise"Boom"}.toraise_error.我喜欢expect..tomore,因为它读起来更好,并且隐藏了过程的创建。我查看了rspec代码,似乎expect..to是suggested,但是我经常遇到使用lambda..should的库。期望..更新,因此还不是“著名”吗? 最佳答案 expect从rspec-2开始使用,之前必须使用lambda。RSpec“正式”建议使用expect,他们可能
我知道:https://github.com/lsegal/barracuda自01/11以来未更新和http://rubyforge.org/projects/ruby-opencl/自03/10以来未更新。这些项目死了吗?或者它们只是因为它们的功能而没有改变,而OpenCL/Ruby从那时起就没有改变。有人在使用这些项目吗?运气好吗?如果没有,您可以推荐另一个用于Ruby的openclgem吗?或者这种调用通常是如何完成的?只需从Ruby调用原始C? 最佳答案 你可以试试opencl_ruby_ffi,它(由我的一位同事)积极开
随着大部分手机都取消了标准耳机孔,这也使得对蓝牙耳机的普及加速,在受众群体中,学生党占很大部分。虽说很多同学都有自己的蓝牙耳机,但可能入手之后并不喜欢。大学生买蓝牙耳机不仅要看外观、工艺、配置,也要看价格。不同的学生预算都不同,所以今天笔者推荐会从不同价格蓝牙耳机去推荐,看看你适合哪款吧!款式一:南卡LitePro2蓝牙耳机参考价格:399防水等级:IPX5NANK南卡潜心研发许久的南卡Litepro2,有着全新的声学系统和多种技术,冲击着主流高端蓝牙耳机市场!作为钻研十多年声学领域的资深品牌,在音频领域上有着各种深厚的技术!配置体验都直接媲美各种高端蓝牙耳机,许多评测达人和专业媒体在体验后都
我想在我的Rails应用程序中实现基本的购物车功能......是否有任何好的gem可以简化这个过程?即我希望购物者能够在结账时添加产品和数量,我希望管理员能够向商店添加新产品(并编辑/删除现有产品)。建议? 最佳答案 Railscasts涵盖了范围广泛的支付和电子商务gem.gem列表也可以在TheRubyToolbox找到。和heretoo.另外,没有覆盖,你可以使用Saas产品Shopify 关于ruby-on-rails-什么是适合Rails的购物车gem?,我们在StackOve