假设我有这样一个XML文件:
<view>
<field table="alice" name="fish"/>
<field id="confirmation" controlType="button" enabled="some-condition">
<title>Confirm...</title>
</field>
<field table="bob" name="cat"/>
<field table="bob" name="dog" hidden="true"/>
</view>
我想输出它的所有字段,但输出是以存在的属性为条件的。
预期结果:
field 'alice.fish'
button "Confirm..." (enabled: some-condition)
field 'bob.cat'
field 'bob.dog' (hidden: true)
当前结果:
field 'alice.fish' (hidden: )
field '.' (hidden: )
field 'bob.cat' (hidden: )
field 'bob.dog' (hidden: true)
"" (enabled: )
button "confirm" (enabled: some-condition)
"" (enabled: )
"" (enabled: )
通过2次调用XmlStarlet:
xmlstarlet sel -t -m "//field" -o "field '" -v "@table" -o "." -v "@name" -o "' (hidden: " -v "@hidden" -o ")" -n $1
xmlstarlet sel -t -m "//field" -v "@controlType" -o " \"" -v "@id" -o "\" (enabled: " -v "@enabled" -o ")" -n $1
有没有可能在对XmlStarlet的一次调用中得到3种不同类型的结果,这样字段就可以保持原来的顺序?
您需要使用 --if
选项(--break
表示当前控制结构的结束)。
xmlstarlet sel --text -t -m "//field" \
--if "@controlType='button'" \
-v "@controlType" -o " \"" -v "title" -o "\" (enabled: " -v "@enabled" -o ")" \
--else \
-o "field '" -v "@table" -o "." -v "@name" -o "'" \
--if "@hidden" -o " (hidden: " -v "@hidden" -o ")" --break \
--break \
-n "$1"
XMLStarlet 包含一组命令行的 XML 工具,主要用于对 XML 文档进行转换、查询、校验以及编辑。
问题内容: 为什么在组合框中选择项目时会两次调用此事件? 问题答案: 对于一次更改,JComoboBox ItemListener确实会被调用两次。一次用于SELECTED事件,一次用于DESELECTED事件。 有关如何编写ItemListener的信息,请参见本教程页面。 基本上你要做的就是
问题内容: 我有一个函数,每2.5秒调用一次以检查在后台运行的任务。如果响应为错误,则它将axios调用到url,如果响应成功,则停止该函数。 这在Chrome和Mozilla上完美运行,但由于某些原因在IE(版本11)中不起作用。该函数可以无限地调用自身,但是检查日志表明它仅调用axios一次,即使后端任务已经完成,它也将永远循环。 为什么没有在IE上再次调用axios?有什么我想念的吗? 问题
本文向大家介绍ajax的定时调用每5秒调用一次,包括了ajax的定时调用每5秒调用一次的使用技巧和注意事项,需要的朋友参考一下
我有多个具有多个选择限制的无线电组,一个是by name属性,另一个是jQuery。对于每个无线电组,我在更改时将checked属性设置为false,这样每个组只能检查一个无线电。 HTML jQuery 这只适用于第一组,有什么建议吗? 编辑: 使用类选择器而不是ID: HTML jQuery
编辑:由于代码剪贴不会重现错误-这里有一个指向github repo的链接:(代码远未完成) https://github.com/altruios/clicker-game 我现在已经在两台计算机上运行了它——这两台计算机都有相同的行为,而代码剪报并没有显示出来。 因此,我正在构建一个clicker游戏来学习react,我不明白为什么这段代码会以这种方式运行: 在主应用程序中,我有以下功能: 那