0
我需要从bash脚本中的xml文件获取属性,但我既不能使用xmllint --xpath,也不能使用xmlstarlet,因为它们在我工作的服务器上不可用。访问bash脚本中的xml属性
我已经尝试过使用grep,cut和sed的解决方案,但它在很长一段时间里并不是一个好的解决方案。
没有可用grep_xml机器上,我可以存取权限与它的元素,但是当我试图访问我的属性我得到“在处理程序无法识别的错误表达”
,这是我的xml文件
<?xml version="1.0" standalone="yes"?>
<p4codeline xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="p4codeline_1_1.xsd">
<module name="kpreader" currentVersion="kpreader_1.1STD0" previousVersion="kpreader_1.0STD0">
<codeline owner="undefined" path="//HEP/jcas/kpreader/trunk/...">
<namingConvention/>
<description>Main codeline for development</description>
<rules>
<rule>Develop on MAIN, and create a TAG codeline on release</rule>
<rule>Never broke the build on the MAIN</rule>
</rules>
</codeline>
<externals>
<external viewPath="J2ep_BuildTools/..." codeLine="//CT/JAVA/J2ep_BuildTools/Source/tags/J2EP_BUILDTOOLS_1.6STD0/..." depotPath="."/>
</externals>
</module>
</p4codeline>
我只需要使用基于bash或命令的解决方案访问代码行中的路径属性。
我已经试过类似
xml_grep -t '/p4codeline/module/codeline/@path' file.xml
它answear我
error: unrecognized expression in handler: '/p4codeline/module/[email protected]' at /usr/bin/xml_grep line 183
是,不要把我们留在黑暗中。如果你去看医生,不要只说“哎呀!”。请明确点。 – Jens
什么是输入,到目前为止您尝试了什么,它打印了什么,以及您期望它(或解决方案)打印的内容是什么?我们需要更多细节。 – l0b0
为此,我将使用Perl +您选择的XML解析器。 – m0skit0