我正在尝试使用xmllint从xml文档中提取值。但是xml的结构方式如下。
<configuration>
<property>
<name>hive.exec.reducers.max</name>
<value>999</value>
<description>max number of reducers will be used. If the one
specified in the configuration parameter mapred.reduce.tasks is
negative, hive will use this one as the max number of reducers when
automatically determine number of reducers.</description>
</property>
<property>
<name>hive.cli.print.header</name>
<value>false</value>
<description>Whether to print the names of the columns in query output.</description>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>false</value>
<description>Whether to include the current database in the hive prompt.</description>
</property>
</configuration>
让我们说,我想拉取hive.cli.print.current.db的值,输出应该是&#34; false&#34;。如何使用xmllint从xml文档中的给定名称标记中提取值。
答案 0 :(得分:3)
以下xpath查询应该有效。
xmllint --xpath "//property[name[text()='hive.cli.print.current.db']]/value/text()" file.xml
翻译:
查找包含具有给定文本的子节点(名称)的属性元素,并返回包含在另一个(值)子节点中的文本。