Initial commit
This commit is contained in:
0
source/08-text-files/xml/__init__.py
Normal file
0
source/08-text-files/xml/__init__.py
Normal file
27
source/08-text-files/xml/demo.xml
Normal file
27
source/08-text-files/xml/demo.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<users>
|
||||
<user data-id="101">
|
||||
<nom>Zorro</nom>
|
||||
<metier>Danseur</metier>
|
||||
</user>
|
||||
<user data-id="102">
|
||||
<nom>Hulk</nom>
|
||||
<metier>Footballeur</metier>
|
||||
</user>
|
||||
<user data-id="103">
|
||||
<nom>Zidane</nom>
|
||||
<metier>Star</metier>
|
||||
</user>
|
||||
<user data-id="104">
|
||||
<nom>Beans</nom>
|
||||
<metier>Epicier</metier>
|
||||
</user>
|
||||
<user data-id="105">
|
||||
<nom>Batman</nom>
|
||||
<metier>Veterinaire</metier>
|
||||
</user>
|
||||
<user data-id="106">
|
||||
<nom>Spiderman</nom>
|
||||
<metier>Veterinaire</metier>
|
||||
</user>
|
||||
</users>
|
51
source/08-text-files/xml/xmldecode.py
Normal file
51
source/08-text-files/xml/xmldecode.py
Normal file
@ -0,0 +1,51 @@
|
||||
from typing import List
|
||||
|
||||
from lxml import etree
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Balise principale
|
||||
base = etree.Element("FastDMU", {"version": "2.0"})
|
||||
# Balise Search system
|
||||
root = etree.Element("SearchSystem")
|
||||
# Deux champs pour Search System
|
||||
root_title = etree.Element("Title")
|
||||
root_mode = etree.Element("Mode")
|
||||
root_title.text = "01"
|
||||
root_mode.text = "AssembliesOnly"
|
||||
root.append(root_title)
|
||||
root.append(root_mode)
|
||||
|
||||
# Liste des items à ajouter
|
||||
items: List[str] = ["A", "B", "C"]
|
||||
for item in items:
|
||||
# Création des éléments
|
||||
search_item = etree.Element("SearchItem")
|
||||
item_mode = etree.Element("Mode")
|
||||
item_type = etree.Element("Type")
|
||||
item_value = etree.Element("Value")
|
||||
item_field = etree.Element("Field")
|
||||
item_field_name = etree.Element("FieldName")
|
||||
item_title = etree.Element("Title")
|
||||
# Définition du texte
|
||||
item_mode.text = "Add"
|
||||
item_type.text = "Wildcard"
|
||||
item_value.text = item
|
||||
item_field.text = "PARTNUMBER"
|
||||
item_field_name.text = "PARTNUMBER"
|
||||
item_title.text = "Partnumber"
|
||||
# Ajout des éléments au parent
|
||||
search_item.append(item_mode)
|
||||
search_item.append(item_type)
|
||||
search_item.append(item_value)
|
||||
search_item.append(item_field)
|
||||
search_item.append(item_field_name)
|
||||
search_item.append(item_title)
|
||||
# Ajout du searchitem à la balise SearchSystem
|
||||
root.append(search_item)
|
||||
# Ajout de la balise SearchSystem à la balise FastDMU
|
||||
base.append(root)
|
||||
# J'aurais peut-être préféré faire ça avec BeautifulSoup4
|
||||
# Ou peut-être gagner du temps en convertissant du texte directement
|
||||
# en éléments XML.
|
||||
print(etree.tostring(base, pretty_print=True, xml_declaration=True, encoding="iso8859-1",
|
||||
doctype="<!DOCTYPE FastDMU>"))
|
0
source/08-text-files/xml/xmlmake.py
Normal file
0
source/08-text-files/xml/xmlmake.py
Normal file
17
source/08-text-files/xml/xmlread.py
Normal file
17
source/08-text-files/xml/xmlread.py
Normal file
@ -0,0 +1,17 @@
|
||||
# Installer d'abord lxml avec pip install lxml
|
||||
from lxml import etree
|
||||
|
||||
# Read content from XML file
|
||||
with open("demo.xml", "rb") as file:
|
||||
text = file.read()
|
||||
|
||||
# Read structure into Element object
|
||||
structure = etree.fromstring(text)
|
||||
print(type(structure))
|
||||
|
||||
print(structure.text)
|
||||
print(structure.attrib)
|
||||
for child in structure:
|
||||
print(child, type(child), child.attrib)
|
||||
|
||||
print(structure.find("user"))
|
Reference in New Issue
Block a user