xmlstarlet返回1,值为空

问题描述

我正在尝试使用xmlstarlet来解析此file.xml:

<resultset>
<row>
 <field name="b">2</field>
 <field name="c"></field>
</row>
</resultset>

有了第一场驱赶就可以了

$ xmlstarlet sel -t -v "resultset/row[1]/field[1]" file.xml
2
$ echo $?
0

但是在第二个字段xmlstarlet中返回1

$ xmlstarlet sel -t -v "resultset/row[1]/field[1]" file.xml
$ echo $?
1

在我看来,空白字段是正常的。我想解析它而没有xmlstarlet错误。

更新: 与field[@name="b"]的行为相同:

$ xmlstarlet sel -t -v 'resultset/row/field[@name="b"]' file.xml
2
$ echo $?
0

$ xmlstarlet sel -t -v 'resultset/row/field[@name="c"]' file.xml
$ echo $?
1

我想将第二种情况与实际错误区分开来

更新2:主要问题是: 如果我尝试选择[@name="c"][@name="not_exits"] xmlstarlet,则返回相同的退出代码1。 但是file.xml的字段名称为“ c”,而没有字段名称为“ not_exist”。

我希望xmlstarlet打印空字符串并在file.xml包含具有给定名称的空字段时返回退出代码0, 当file.xml根本不包含具有给定名称的字段时,并返回非null退出代码。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)