xml - Ansible XML 模块无法加载/读取外部 dtd 文件中定义的实体
问题描述
我正在尝试解析遵循 DTD 结构的 xml 文件。以下是 DTD 文件的示例:
测试.dtd
<?xml version="1.0" encoding="UTF-8"?>
<! ENTITY TEST "TEST 123">
<! ELEMENT node EMPTY>
<! ATTLIST node
name ID #REQUIRED
description CDATA
>
测试.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE node SYSTEM "file:test.dtd"
[
<!ENTITY NAME "host1">
]>
<node name= "&NAME;" description="&TEST;">
</node>
测试.yaml
- hosts: localhost
tasks:
- xml:
path: test.xml
xpath: /node
content: attribute
当我执行以下剧本时,出现错误:
fatal: ..... "msg": "Error while parsing document test.xml (Entity 'TEST' not defined)"
当我在我的 shell(bash) 中运行以下命令时:
xmllint --loaddtd --dtdattr --path . --xpath /node test.xml
它返回值并且不会出错。有没有办法可以访问外部 dtd 文件中定义的变量?或者甚至有没有办法忽略未定义的实体并使用ansible将它们作为纯文本读取?
解决方案
推荐阅读
- python-3.x - 如何使用 Cognito 进行 AppSync 变异调用(Python)
- html - 如何通过 HTML 表单将图像直接提交/发布到 TinEye?
- node.js - 无法在 Windows 10 上安装 node express
- java - 如何配置 Kudu 测试工具以避免“块缓存容量超过内存压力阈值”
- c++ - 从 lambda 中的空指针调用方法
- linux - 即使在配置时提供了路径,Cmake 也找不到文件
- sql - while 循环中的 SELECT 语句不起作用
- xml - 打印子节点
- html - 如何在悬停时制作触及导航底部的边框
- python - 如果频道最后一条消息是 X 分钟前发送的,如何创建一个循环来发送消息?[不和谐.py]