如何使用 xmllint 从 xml 获取值

yae*_*ael 5 linux xml bash shell-script

我有以下XML 文件

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Component configuration file -->
<Component>
   <Name>install_env</Name>
   <HelpString>install_env Com</HelpString>
   <Version>1.10.3</Version>
                <Properties>
Run Code Online (Sandbox Code Playgroud)

如何获取名称标签的值 - install_env

通过使用工具 - xmllint

小智 4

使用您的测试文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Component configuration file -->
<Component>
   <Name>install_env</Name>
   <HelpString>install_env Com</HelpString>
   <Version>1.10.3</Version>
</Component>
Run Code Online (Sandbox Code Playgroud)

我使用--xpath参数来获取名称标签的值:

user$ test=$(xmllint --xpath "//Component/Name/text()" testfile) 
user$ echo $test
install_env
Run Code Online (Sandbox Code Playgroud)

--xpath 意味着 --noout,这会阻止 xmllint 输出任何内容。将输出重定向到变量或文件。