xmlstarlet无法加载外部实体
我的脚本是一个简单的单行程序,它使用curl获取带有xml输出的URL。我试图仅输出以下标记中的文本:xmlstarlet无法加载外部实体,xml,xmlstarlet,Xml,Xmlstarlet,我的脚本是一个简单的单行程序,它使用curl获取带有xml输出的URL。我试图仅输出以下标记中的文本: <TEXT>No Hosts Queued for Purging</TEXT> 不使用xmlstarlet时,curl输出如下所示: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE BATCH_RETURN SYSTEM "https://qualysapi.qualys.com/api/2.0/
<TEXT>No Hosts Queued for Purging</TEXT>
不使用xmlstarlet时,curl输出如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM "https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2017-04-20T20:27:15Z</DATETIME>
<BATCH_LIST>
<BATCH>
<CODE>1921</CODE>
<TEXT>No Hosts Queued for Purging</TEXT>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
failed to load external entity "https://qualysapi.qualys.com/api/2.0/batch_return.dtd"
TYPE BATCH_RETURN SYSTEM "https://qualysapi.qualys.com/api/2.0/batch_return.dtd"
^
我在使用xmlstarlet时遇到以下错误:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BATCH_RETURN SYSTEM "https://qualysapi.qualys.com/api/2.0/batch_return.dtd">
<BATCH_RETURN>
<RESPONSE>
<DATETIME>2017-04-20T20:27:15Z</DATETIME>
<BATCH_LIST>
<BATCH>
<CODE>1921</CODE>
<TEXT>No Hosts Queued for Purging</TEXT>
</BATCH>
</BATCH_LIST>
</RESPONSE>
</BATCH_RETURN>
failed to load external entity "https://qualysapi.qualys.com/api/2.0/batch_return.dtd"
TYPE BATCH_RETURN SYSTEM "https://qualysapi.qualys.com/api/2.0/batch_return.dtd"
^
在执行查询之前,可以使用
fo-D
删除doctype(sel
):
curl -u username:password \
-H 'X-Requested-With:QualysApiExplorer' \
'https://qualysapi.qualys.com:443/api/2.0/fo/asset/host/' \
-d "action=purge&ips=$1&" | \
xmlstarlet fo -D | \
xmlstarlet sel -t -v "BATCH_RETURN/RESPONSE/BATCH_LIST/BATCH/TEXT"