我正在使用C Shell。
我的工作目录:
cd /mnt/FusionOATS/CRM/Research/rys/
My Current Working xmlstarlet命令(对2个文件执行xmlstarlet操作,这些文件直接位于工作目录下,结果粘贴在输出文本文件中):
foreach xmlfile ( ResultReport1.xml ResultReport2.xml )
xmlstarlet sel -t -m '//RESULT_STEP' -v '@time_stamp' -o '|' -v '@step_name' --nl "$xmlfile" >> /scratch/rys/view_storage/outroo3.txt
end
现在我需要处理不同路径的文件,如下所示:
工作目录/ ResultReport1.xml
工作目录/ ResultReport.xml
工作目录/ Test3 / ResultReport3.xml
我试过了:
foreach xmlfile ( ResultReport1.xml ResultReport2.xml /Test3/ResultReport3.xml )
xmlstarlet sel -t -m '//RESULT_STEP' -v '@time_stamp' -o '|' -v '@step_name' --nl "$xmlfile" >> /scratch/rys/view_storage/outroo4.txt
end
但是,得到以下错误:
无法加载外部实体“/Test3/ResultReport2.xml”
我可以使用xmlstarlet执行此操作吗?请建议。感谢。
答案 0 :(得分:0)
只需删除文件路径开头的斜杠即可解决错误:
这有效:
foreach xmlfile ( ResultReport1.xml ResultReport2.xml Test3/ResultReport2.xml )
xmlstarlet sel -t -m '//RESULT_STEP' -v '@time_stamp' -o '|' -v '@step_name' --nl "$xmlfile" >> /scratch/rys/view_storage/outroo4.txt
end