Xml
Sinopse
- Uma interface semelhante a CRUD para gerenciar bits de arquivos XML.
Requisitos
Os requisitos abaixo são necessários no host que executa este módulo.
- lxml> = 2.3.0
Parâmetros
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
add_children | list / elements=raw | | Adicionar elemento (s) filho (s) adicional (is) a um elemento selecionado para um determinado xpath. Os elementos filhos devem ser fornecidos em uma lista e cada item pode ser uma string (por exemplo, children=atmosphere para adicionar um <atmosphere/>elemento filho vazio ), ou um hash onde a chave é o nome do elemento e o valor é o valor do elemento. Este parâmetro xpath precisa ser definido. |
attribute | raw | | O atributo a ser selecionado ao usar o parâmetro value. Esta é uma string, não prefixada com @. |
backup | boolean | Escolhas: - false (default) - true | Crie um arquivo de backup incluindo as informações de carimbo de data / hora para que você possa obter o arquivo original de volta se, de alguma forma, o danificou incorretamente. |
content | string | Escolhas: - attribute - text | Pesquise um determinado xpathe obtenha o conteúdo. Este parâmetro xpath precisa ser definido. |
count | boolean | Escolhas: - false (default) - true | Pesquise um determinado xpathe forneça a contagem de todas as correspondências. Este parâmetro xpath precisa ser definido. |
input_type | string | Escolhas: - yaml (default) - xml | Tipo de entrada para add_childrene set_children. |
insertafter | boolean | Escolhas: - false (default) - true | Adicione elemento (s) filho (s) adicional (is) após o último elemento selecionado para um determinado xpath. Os elementos filhos devem ser fornecidos em uma lista e cada item pode ser uma string (por exemplo, children=atmosphere para adicionar um <atmosphere/> elemento filho vazio ), ou um hash onde a chave é o nome do elemento e o valor é o valor do elemento.Este parâmetro xpath precisa ser definido. |
insertbefore | boolean | Escolhas: - false (default) - true | Adicione elemento (s) filho (s) antes do primeiro elemento selecionado para um dado xpath. Os elementos filhos devem ser fornecidos em uma lista e cada item pode ser uma string (por exemplo, children=atmosphere para adicionar um <atmosphere/> elemento filho vazio ), ou um hash onde a chave é o nome do elemento e o valor é o valor do elemento. Este parâmetro xpath precisa ser definido. |
namespaces | dictionary | | O prefix:urimapeamento de namespace para a expressão XPath. Precisa ser um dict, não um listde itens. |
path | path | | Caminho para o arquivo no qual operar. Este arquivo deve existir antes do tempo. Este parâmetro é obrigatório, a menos que xmlstring seja fornecido. |
pretty_print | boolean | Escolhas: - false (default) - true | Impressão bonita de saída XML. |
print_match | boolean | Escolhas: - false (default) - true | Pesquise um determinado xpathe imprima todas as correspondências. Este parâmetro precisa xpathser definido. |
set_children | list / elements=raw | | Defina o (s) elemento (s) filho (s) de um elemento selecionado para um determinado xpath. Remove todos os filhos existentes. Os elementos filhos devem ser especificados como em add_children. Este parâmetro xpathser precisa definido. |
state | string | Escolhas: - false (default) - true | Defina ou remova uma seleção xpath (nó (s), atributo (s)). |
strip_cdata_tags | boolean | Escolhas: - false (default) - true | Remova as marcas CDATA ao redor dos valores de texto. Observe que isso pode quebrar seu arquivo XML se os valores de texto contiverem caracteres que podem ser interpretados como XML. |
value | raw | | Estado desejado do atributo selecionado. Uma string ou para cancelar a definição de um valor, a Nonepalavra-chave Python (YAML Equivalent, null). Elementos padrão para nenhum valor (mas presente). Os atributos são padronizados para uma string vazia. |
xmlstring | string | | Uma string contendo XML no qual operar. Este parâmetro é obrigatório, a menos que pathseja fornecido. |
xpath | string | | Uma expressão XPath válida que descreve o (s) item (ns) que você deseja manipular. Opera na raiz do documento /, por padrão. |
Notas
- A saída do diff é automaticamente bem impressa, portanto, pode não refletir o conteúdo real do arquivo, apenas a estrutura do arquivo.
- Este módulo não lida com expressões xpath complicadas, portanto, limite os seletores xpath a expressões simples.
- Esteja ciente de que, caso seus elementos XML tenham namespaces, você precisará usar o namespacesparâmetro, consulte os exemplos.
- O prefixo de namespaces deve ser usado para todos os filhos de um elemento onde o namespace é definido, a menos que outro namespace seja definido para eles.
Exemplos
# Remova o atributo 'subjective' do elemento 'rating'
xml:
path: /foo/bar.xml
xpath: /business/rating/@subjective
state: absent
# Defina a classificação para '11'
xml:
path: /foo/bar.xml
xpath: /business/rating
value: 11
# Recupere e exiba o número de nodes
- name: Get count of 'beers' nodes
xml:
path: /foo/bar.xml
xpath: /business/beers/beer
count: yes
register: hits
- debug:
var: hits.count
# Exemplo onde os nós XML pai são criados automaticamente
- name: Add a 'phonenumber' element to the 'business' element
xml:
path: /foo/bar.xml
xpath: /business/phonenumber
value: 555-555-1234
# Adicione várias outras beers ao elemento 'beers'
xml:
path: /foo/bar.xml
xpath: /business/beers
add_children:
- beer: Old Rasputin
- beer: Old Motor Oil
- beer: Old Curmudgeon
# Adicione várias outras beers ao elemento 'beers' e adicione-as antes do elemento 'Rochefort 10'
xml:
path: /foo/bar.xml
xpath: '/business/beers/beer[text()=\"Rochefort 10\"]'
insertbefore: yes
add_children:
- beer: Old Rasputin
- beer: Old Motor Oil
- beer: Old Curmudgeon
# NOTA: O padrão de 'state' é 'present' e 'value' é padronizado como 'null' para os elementos
- name: Add a 'validxhtml' element to the 'website' element
xml:
path: /foo/bar.xml
xpath: /business/website/validxhtml
# Adicione um atributo 'validatedon' vazio ao elemento 'validxhtml'
xml:
path: /foo/bar.xml
xpath: /business/website/validxhtml/@validatedon
# Adicione ou modifique um atributo, adicione um elemento se necessário
xml:
path: /foo/bar.xml
xpath: /business/website/validxhtml
attribute: validatedon
value: 1976-08-05
# Como ler um valor de atributo e acessá-lo no Atmosphere
- name: Read an element's attribute values
xml:
path: /foo/bar.xml
xpath: /business/website/validxhtml
content: attribute
register: xmlresp
- name: Show an attribute value
debug:
var: xmlresp.matches[0].validxhtml.validatedon
- name: Remove all children from the 'website' element (option 1)
xml:
path: /foo/bar.xml
xpath: /business/website/*
state: absent
- name: Remove all children from the 'website' element (option 2)
xml:
path: /foo/bar.xml
xpath: /business/website
children: []
# NOTE: There is the prefix 'x' in front of the 'bar' element, too.
- name: Set namespaced '/x:foo/x:bar/y:baz/@z:my_namespaced_attribute' to 'false'
xml:
path: foo.xml
xpath: /x:foo/x:bar/y:baz
namespaces:
x: http://x.test
y: http://y.test
z: http://z.test
attribute: z:my_namespaced_attribute
value: 'false'Valores Retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
actions | dictionary | sucesso | Um dicionário com o xpath original, namespaces e estado. Amostra:{'namespaces': ['namespace1', 'namespace2'], 'state = present': None, 'xpath': 'xpath'} |
backup_file | string | quando backup = yes | O nome do arquivo de backup que foi criado Amostra:/ caminho / para / arquivo.xml.1942.2017-08-24@14 : 16: 01 ~ |
count | integer | quando o parâmetro 'count' é set | A contagem de correspondências xpath. Amostra:2 |
matches | list / elements=string | quando o parâmetro 'print_match' é set | As correspondências xpath encontradas. |
msg | string | sempre | Uma mensagem relacionada à (s) ação (ões) executada (s). |
xmlstring | string | quando o parâmetro 'xmlstring' é set | Uma string XML da saída resultante. |