Używam biblioteki python lxml do transformacji plików XML do nowego schematu, ale wystąpiły problemy z przetwarzaniem instrukcji przetwarzania z treści XML.Usuwanie instrukcji przetwarzania za pomocą Python lxml
elementami instrukcji przetwarzania są rozproszone po całym XML, jak w poniższym przykładzie (wszystkie zaczynają się od „Oasys” i kończy z unikalnym kodem):
string = "<text><?oasys _dc21-?>Text <i>contents</i></text>"
nie mogę zlokalizować ich poprzez metoda, chociaż etree.getchildren()
zwraca je:
tree = lxml.etree.fromstring(string)
print tree.findall(".//")
>>>> [<Element i at 0x747c>]
print tree.getchildren()
>>>> [<?oasys _dc21-?>, <Element i at 0x747x>]
print tree.getchildren()[0].tag
>>>> <built-in function ProcessingInstruction>
print tree.getchildren()[0].tail
>>>> Text
Czy istnieje alternatywa do korzystania getchildren()
do analizowania i usunąć instrukcje przetwarzania, zwłaszcza biorąc pod uwagę, że są one zagnieżdżone na różnych poziomach thro po pliku XML?
pan rzeczywiście rozwiązać dwa problemy z odpowiedzią - Nie wiedziałem o strip_tags() funkcji, ale jest to bardzo przydatne! –