xmllint基于xml文档中的标记名称搜索标记的值

时间:2015-06-30 00:08:18

标签: xml xmllint

我正在尝试使用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文档中的给定名称标记中提取值。

1 个答案:

答案 0 :(得分:3)

以下xpath查询应该有效。

xmllint --xpath "//property[name[text()='hive.cli.print.current.db']]/value/text()" file.xml

翻译:

查找包含具有给定文本的子节点(名称)的属性元素,并返回包含在另一个(值)子节点中的文本。