我有以下代码:
#!/bin/bash
task=$1
xml=$(curl -sL "http://login:[email protected]/issues/$task.xml")
id=$(xmllint --xpath '//issue/id/text()' --format - <<<"$xml")
name=$(xmllint --xpath '//issue/subject/text()' --encode utf8 - <<<"$xml")
echo "task #$id - $name"
但是,当我运行它时,我得到的编码西里尔文字如下:
task #10014 - Личный номер клиента
请帮助修复它。我不想将此文字编码
在与进行了几分钟的搏斗之后xmllint
,我通常会放弃并最终使用xmlstarlet
它来代替,它通常更倾向于按照您的期望去做。这里:
xmlstarlet sel -t -v '//issue/subject' <<< "$xml"
(或<rant>完全放弃XML并使用更合理的格式</ rant>)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句