Ansible Xml 模块 - 从寄存器中获取带有命名空间的 xml 值

Ansible Xml Module - Get xml value with namespace from a register

有一个pom.xml文件,我用下面的任务提取项目名

- name: Loading project variables from the parent Maven pom.xml
  xml:
    path: "/some/path/pom.xml"
    namespaces:
      ns: "http://maven.apache.org/POM/4.0.0"
    xpath: "/ns:project/ns:name"
    content: text
  register: project_name_reg

- name: "Set project name"
  set_fact:
    project_name: "{{ project_name_reg.matches[0] }}"

有效,现在 project_name 包含:

"project_name": {
        "{http://maven.apache.org/POM/4.0.0}name": "My Project Parent"
    }

如何通过这个带有命名空间的复杂 {http://maven.apache.org/POM/4.0.0}name 名称提取真正的 My Project Parent 值?这是一个简单的词典,但我的尝试都失败了。

你根本不在乎那把钥匙。你可以这样做:

- name: "Set project name"
  set_fact:
    project_name: "{{ project_name_reg.matches[0].values()|first }}"