草庐IT

XmlStarlet

全部标签

xmlstarlet 根据条件选择值

基于此link,我正在尝试解决类似的问题。4.0.0com.fooiwidgetjar0.9.1biwidgethttp://maven.apache.orgjunitjunit3.8.1test如果artifactId等于iwidget,我想提取groupId。到目前为止我尝试了什么:xmlstarletsel-Nx=http://maven.apache.org/POM/4.0.0-t-v"/x:project/x:groupId"上面返回了groupId=foo.bar,但是,我希望它仅在artifactId等于iwidget时返回$VAR='foo.bar'xmlstarlet

Xmlstarlet 在更新 xml 时使用 --inplace 选项

我正在尝试使用--inplace全局选项更新一个xml标签,如下所示xmled--inplace-Nx="http://java.sun.com/xml/ns/j2ee"-u"//x:web-app/x:filter/x:init-param/x:param-value"-v"/cuadmin/showRecovery.do"WEB-INF/web.xml上面是给我错误**I/Owarning:failedtoloadexternalentity"x=http%3A//java.sun.com/xml/ns/j2ee"**我试图修改的xml如下所示:-recoveryRedirectF

xmlstarlet 根据文本值选择同级

我一直在尝试通过不同的选项来解决这个问题,但找不到正确的方法。这是xml文件:PriceRule__c.AllPriceRule__c.NoneProductRule__c.AllQuote__c.All_QuotesSummaryVariable__c.AllListView*AnalyticSnapshot我希望能够获取与以PriceRule__c开头的任何“成员”节点相同的“类型”节点中的“名称”节点的文本。这是我能得到的最远的实际找到这些节点的值:echo$(xmlstarletsel-Nx="http://soap.sforce.com/2006/04/metadata"-t

XML - 分组和合并元素,同时保留所有元素文本

我有一些XML,其中有具有不同文本的重复元素。重复的元素既有连续的也有不连续的。我正在尝试合并这些元素中的文本,并删除重复的元素。选择的工具是xmlstarlet(在osx上的bash中)。输入:funfoobartimes期望的输出:foobarfuntimes 最佳答案 我会做的是使用xmlstarlettrcommand使用XSLT进行转换。然后你可以使用MuenchianGrouping按名称对元素进行分组。例子...XML输入(test.xml;根据评论中的问题进行编辑)funfoobadbartimestimesUhoh

xml - Bash 脚本使用 XMLStarlet 将 xml 元素解析为 key=value 对

我有这个包含用户数据的xml文件(文件名:myFile.xml):jDoeabc123JohnDoejdoe@example.comGermany我可以在我的bash脚本中打开它并使用“for”循环来迭代它的内容:foriin$(xmlstarletselect-t-v'/params/*'myFile.xml)doecho$idone当我运行它时,我得到:jDoeabc123JohnDoejdoe@example.comGermany如何将每个值与其相对名称相关联,并创建一个像这样的bash脚本变量:username="jDoe"password="abc123"firstname=

xml - 如何在xml中的值之前添加文本?

这是我的test.xml文件:现在我可以在值后添加一些文本:xmlstarleted-s"//file[@name]/@name"-ttext-n"@name"-v"_copy_"test.xml结果:……如何在值之前添加文本?​​…… 最佳答案 根据命令行帮助,用xmlstarleted,您可以使用更新-u选项并包括替换XPath表达式-x:xmlstarleted-u-x在替换表达式中,您可以使用XPathconcat()函数生成将替换属性的字符串。表达式concat('_copy_',.)将连接字符串'_copy_'在当前节点

XMLStarlet:每个项目打印一行,同时使用来自父元素的数据

我有以这种方式格式化的XML数据:1,2,3,4,5,69,8,7,6,5,41,2,3,4,5,69,8,7,6,5,4我正在尝试使用xmlstarlet将此数据解析为文本文件(以逗号分隔)。所需的输出如下所示:TimeAttribute,ChannelAttribute,Data01/01/20093:00:02AM,I,1,2,3,4,5,601/01/20093:00:02AM,II,9,8,7,6,5,401/01/20093:00:02AM,I,1,2,3,4,5,601/01/20093:00:02AM,II,9,8,7,6,5,4我能想到的最好的是:xmlstarlet

xmlstarlet 加载外部实体失败

我的脚本是一个简单的单行脚本,它使用curl获取带有xml输出的URL。我正在尝试仅输出以下标记中的文本:NoHostsQueuedforPurging我的脚本:curl-uusername:password-H'X-Requested-With:QualysApiExplorer''https://qualysapi.qualys.com:443/api/2.0/fo/asset/host/'-d"action=purge&ips=$1&"|xmlstarletsel-t-m'/BATCH_RETURN/RESPONSE/BATCH_LIST/BATCH/TEXT'-v"."不使用x

xmlstarlet 选择具有特定属性值的节点

我是新手,所以如果答案很明显,请原谅我!我有一个从NCBI下载的XML文档,我试图从每个条目中提取主机信息,它看起来有点像这样(但嵌套更深):2Mvs/Jiroft.IRN/14.15/1[B3]21Homosapiens我已经成功使用了以下内容:xmlsel-t-v//OrgName_mod/OrgMod[2]/OrgMod_subname-nfile.xml但问题在于,有时OrgMod节点中的信息或多或少,宿主并不总是处于第二位。所以我已经尝试了几乎每个版本来尝试专门选择主机节点:xmlsel-t-m//OrgMod/OrgMod_subtype[@value=nat-host]-

xml sel -t -m 根本不适合我

我有以下文件log.xml:1001Entry10030100000000000005203EntryNumber1118130.73849678039550845.7384948730468752001Entry20030200000000000005203EntryNumber22616140.73849678039550855.7384948730468753001Entry30030300000000000005203EntryNumber3314150.73849678039550865.738494873046875如果我运行以下命令,在使用xmlstarlet1.6.1的