简体   繁体   中英

Python Parse an XML with CDATA sections and then output it again with the CDATA sections

I want to parse an XML with CDATA sections and then output it again with the CDATA sections. How to achieve it?

For example, the input could be like this, a strings.xml file like this:

<resources>
    <string name="card_alerts"><![CDATA[<div id="card_alerts" aria-labelledby="card alerts"><h2>Kartenwarnmeldungen</h2><section id="card_alerts_text_messages"><h3>1. SMS</h3><p>1.1 Um Kartenwarnmeldungen per SMS abonnieren zu können, müssen Sie zustimmen, dass SMS an Ihre Mobiltelefonnummer gesendet werden dürfen, einschliesslich einer abschliessenden Bestätigung, wenn Sie den Dienst kündigen, gemäss unseren <a href="tab://terms">Geschäftsbedingungen</a> und der <a href="tab://privacy">Datenschutzrichtlinie</a>. <b>%1$s</b>. Die Nachrichtenfrequenz variiert. T&#8209;Mobile haftet nicht für verzögerte oder nicht übertragene Nachrichten. Für Nachrichten und die Datenübertragung können Standardgebühren anfallen.</p></section><section id="card_alerts_supported_carriers"><h3>2. SUPPORTED CARRIERS</h3><p>2.1 Zu den unterstützten Betreibern zählen: ACS Wireless, Alltel (einschliesslich Midwest), AT&amp;T, Bluegrass, Boost, Cellcom, Cellular One of East Central Illinois, Cellular South, Centennial, Cincinnati Bell, Cox Wireless, East Kentucky Network, GCI Communications, Immix Wireless, Inland Cellular, MetroPCS, Nex-Tech Wireless, nTelos, Revol Wireless, Rural Cellular Corporation, Sprint, T-Mobile® USA (einschliesslich Suncom), Thumb Cellular, U.S. Cellular®, United, MetroPCS, Verizon Wireless, Virgin Mobile USA und WCC oder WCW (West Central Wireless).</p></section></div>]]></string>
    <string name="software_license"><![CDATA[<b>SOFTWARELIZENZ</b>]]></string>
    <string name="software_application_usage"><![CDATA[
            <!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Disclosures</title><style type="text/css"> h1, h2, h3, p { font-family: sans-serif; color: #333333; } h1{ font-size: 1.5em; } h2{ font-size: 1.248em; } h3, p { font-size: 0.998em; } .widgetMarginHelper{ margin : 1em; } </style></head><body class="widgetMarginHelper"><div><h1 id="disclosures_heading">%1$s</h1></div><div><p id="disclosures_legal_intro">%2$s</p></div><div id="software_license_content" aria-labelledby="software license"><div><h2 id="software_license_heading">%3$s</h2></div><section id="software_application_usage">><h3>1. NUTZUNG DER SOFTWAREANWENDUNG</h3><p>1.1 Ihr Dienstanbieter gewährt Ihnen hiermit eine beschränkte, persönliche, widerrufbare, nicht abtretbare, nicht übertragbare und nicht exklusive Lizenz, die Softwareanwendung (einschließlich zukünftiger Updates oder Upgrades, die Ihnen gelegentlich unter der Voraussetzung zur Verfügung gestellt werden, dass Sie anerkennen, dass solche Aktualisierungen oder Upgrades zusätzlichen Bedingungen unterliegen können) gemäß den nachfolgenden Verpflichtungen und Einschränkungen zu nutzen:</p><p>1.1.1 Sie dürfen die Anwendung nur auf einem einzigen registrierten Mobiltelefon nutzen, das sich in Ihrem Besitz oder unter Ihrer Kontrolle befindet. Sie werden jedes zusätzliche oder Ersatz-Mobiltelefon separat registrieren müssen;</p><p>1.1.2 Sie dürfen die Anwendung ausschließlich zum Erhalt der mobilen Dienste nutzen, und zu keinerlei anderem Zweck;</p><p>1.1.3 Die Anwendung wird ausschließlich für Ihre persönliche Nutzung an Sie lizenziert, und es ist Ihnen untersagt, anderen Personen jedwede Nutzungsrechte oder anderweitigen Rechte bezüglich der Anwendung zu übertragen, zu verleihen, weiterzuverbreiten, zu gewähren oder Unterlizenzen zu erteilen;</p><p>1.1.4 Sie dürfen die Softwareanwendung in keinerlei Form ganz oder teilweise kopieren oder vervielfältigen (sofern nicht ausdrücklich durch diese Lizenz erlaubt), dekompilieren, nachkonstruieren, zerlegen, modifizieren, als Grundlage abgeleiteter Werke verwenden, oder versuchen, ihren Quellcode abzuleiten;</p><p>1.1.5 Sie dürfen die Anwendung in keiner Weise verwenden, die die Anwendung (oder jedwede Server oder Netzwerke, die mit der Anwendung verbunden oder verknüpft sind) schädigen, deaktivieren, überlasten oder beeinträchtigen könnte, oder die für eine dritte Partei die Nutzung der und/oder die Freude an der Anwendung störend beeinflussen könnte;</p><p>1.1.6 Sie dürfen keinerlei Urheberrechtsvermerke entfernen oder modifizieren, die der Softwareanwendung beigefügt oder in ihr enthalten sind, und Sie erkennen an und stimmen zu, dass im Rechtsverhältnis zwischen Ihnen und uns die Softwareanwendung unser Eigentum verbleibt, und dass Sie keinerlei Rechte, Rechtstitel oder Ansprüche auf die Anwendung haben, sei es durch Implikation, Rechtsverwirkung oder anderweitig, mit Ausnahme der in dieser Lizenz dargelegten beschränkten Rechte;</p><p>1.1.7 Sie dürfen die Anwendung in keiner Weise zum Zwecke nutzen, testen oder anderweitig verwenden, ein Verfahren oder eine Software zu entwickeln oder zu implementieren, deren Ziel es ist, die Funktionalität der Anwendung (oder jedweder Server oder Netzwerke, die mit der Anwendung verbunden oder verknüpft sind) zu überwachen oder zu beeinträchtigen (einschließlich des Abfangens von Daten);</p><p>1.1.8 Sie dürfen die Sicherheitsfunktionen der Anwendung nicht vorsätzlich beeinträchtigen oder umgehen;</p><p>1.1.9 Sie stimmen auch zu, dass Sie die Anwendung für keine Zwecke, die durch das Recht der Vereinigten Staaten oder durch anwendbares Recht untersagt sind, nutzen werden;</p><p>1.1.10 Bei jedweder Beendigung der mobilen Dienste verfallen alle Rechte, die Ihnen bezüglich der Softwareanwendung gewährt wurden, unmittelbar; und</p><p>1.1.11 Jedwede Open-Source-Software, die der Anwendung möglicherweise beigefügt ist, wird Ihnen gemäß der entsprechenden Open-Source-Lizenzvereinbarung bereitgestellt und nicht gemäß dieser Lizenz, und Ihr Dienstanbieter lehnt jede Haftung bezüglich jedweder bereitgestellten Open-Source-Lizenz ab, wie nachfolgend angegeben.</p></section><section id="software_license_termination"><h3>2. BEENDIGUNG DER SOFTWARELIZENZ</h3><p>2.1 Die Softwarelizenz gilt, sobald Sie die Softwarelizenz akzeptieren oder die Softwareanwendung installieren (je nachdem, was zuerst eintrifft), und bis Sie gemäß den folgenden Bestimmungen oder anderweitig in Übereinstimmung mit der Softwarelizenz beendet wird.</p><p>2.2 Die Softwarelizenz wird automatisch gekündigt, wenn Sie die mobilen Dienste abbestellen und/oder die Softwareanwendung deinstallieren, oder falls Sie diese Lizenz oder die Geschäftsbedingungen der mobilen Dienste nicht erfüllen.</p><p>2.3 Nach Beendigung der Softwarelizenz (aus jedwedem Grund) müssen Sie die Softwareanwendung deinstallieren und alle Kopien der Softwareanwendung einschließlich all ihrer Komponenten, die sich in Ihrem Besitz oder Ihrer Kontrolle befinden, vernichten.</p></section><section id="disclaimer_of_warranty"><h3>3. GEWÄHRLEISTUNGSAUSSCHLUSS</h3><p>3.1 SIE ERKENNEN AN UND STIMMEN ZU, DASS DIE ANWENDUNG, GGF. BEIGEFÜGTE OPEN-SOURCE-LIZENZEN SOWIE DIE MOBILEN DIENSTE IN IHRER VORHANDENEN FORM UND VERFÜGBARKEIT BEREITGESTELLT WERDEN, MIT ALLEN FEHLERN UND OHNE JEGLICHE GEWÄHRLEISTUNG. IHR DIENSTANBIETER SOWIE SEINE TOCHTERUNTERNEHMEN, VERBUNDENEN UNTERNEHMEN, MITARBEITER, BEAUFTRAGTEN, FÜHRUNGSKRÄFTE UND GESCHÄFTSFÜHRER SCHLIESSEN HIERMIT JEDWEDE (AUSDRÜCKLICHEN, IMPLIZIERTEN ODER GESETZLICHEN) GEWÄHRLEISTUNGEN BEZÜGLICH DER ANWENDUNG, GGF. BEIGEFÜGTER OPEN-SOURCE-LIZENZEN UND MOBILER DIENSTE AUS, INSBESONDERE IMPLIZIERTE GEWÄHRLEISTUNGEN FÜR MARKTGÄNGIGKEIT, ZUFRIEDENSTELLENDE QUALITÄT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, GENAUIGKEIT, UNGESTÖRTE NUTZUNG UND NICHTVERLETZUNG DER RECHTE DRITTER. EINIGE RECHTSORDNUNGEN ERLAUBEN KEINE AUSSCHLÜSSE IMPLIZIERTER GEWÄHRLEISTUNGEN ODER BESCHRÄNKUNGEN ANWENDBARER GESETZLICHER RECHTE VON VERBRAUCHERN; DIE VORSTEHEND AUFGEFÜHRTEN AUSSCHLÜSSE UND BESCHRÄNKUNGEN GELTEN ALSO MÖGLICHERWEISE NICHT FÜR SIE.   IHR DIENSTANBIETER GEWÄHRLEISTET NICHT, DASS DIE ANWENDUNG MIT JEDEM MOBILTELEFONTYP KOMPATIBEL IST. UNGEACHTET DES VORSTEHENDEN WIRD DIE HAFTUNG IHRES DIENSTANBIETERS SOWIE SEINER JEWEILIGEN TOCHTERUNTERNEHEN, VERBUNDENEN UNTERNEHMEN, MITARBEITER, BEAUFTRAGTEN, FÜHRUNGSKRÄFTE UND GESCHÄFTSFÜHRER IN KEINEM FALL DIE SUMME VON 100 USD ÜBERSCHREITEN (UNGEACHTET DER FORM DER EINGELEGTEN RECHTSMITTEL, UND UNGEACHTET DESSEN, OB DIESE SICH AUS DEM VERTRAG, EINER UNERLAUBTEN HANDLUNG ODER ANDERWEITIG ERGEBEN).</p></section><section id="limitation_of_liability"><h3>4. HAFTUNGSBESCHRÄNKUNG</h3><p>4.1 SOWEIT IM GESETZLICHEN RAHMEN NICHT UNZULÄSSIG IST IHR DIENSTANBIETER IN KEINEM FALL HAFTBAR FÜR JEDWEDE SCHÄDEN, INSBESONDERE DIREKTE, INDIREKTE, BESONDERE, ZUFÄLLIGE ODER ALS FOLGE ENTSTANDENE SCHÄDEN, VERLUSTE ODER KOSTEN, DIE SICH AUS DER ANWENDUNG, GGF. BEIGEFÜGTEN OPEN-SOURCE-LIZENZEN, DEN MOBILEN DIENSTEN SOWIE DEREN NUTZUNG ODER UNMÖGLICHKEIT DER NUTZUNG SEITENS JEGLICHER PARTEI ERGEBEN, ODER IM ZUSAMMENHANG MIT JEGLICHEN FUNKTIONSAUSFÄLLEN, FEHLERN, AUSLASSUNGEN, UNTERBRECHUNGEN, DEFEKTEN, BETRIEBS- ODER ÜBERTRAGUNGSVERZÖGERUNGEN, COMPUTERVIREN ODER SYSTEMAUSFÄLLEN, SELBST WENN IHR DIENSTANBIETER ODER DESSEN VERTRETER AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN, VERLUSTE ODER KOSTEN HINGEWIESEN WURDEN.</p></section><section id="expert_control"><h3>5. EXPORTKONTROLLE</h3><p>5.1 Sie dürfen die Anwendung nur im Einklang mit den Gesetzen der Vereinigten Staaten nutzen oder anderweitig exportieren oder reexportieren. Insbesondere darf die Anwendung nicht exportiert oder reexportiert werden (a) in ein von den Vereinigten Staaten mit einem Embargo belegtes Land, oder (b) an jedwede Person, die auf der Liste der „Specially Designated Nationals“ des US-Finanzministeriums oder der „Denied Person’s List“ oder der „Entity List“ des US-Handelsministeriums verzeichnet ist. Indem Sie die Anwendung nutzen, versichern und garantieren Sie, dass Sie sich nicht in einem solchen Land befinden oder auf einer solchen Liste verzeichnet sind.</p></section></div><div id="card_alerts_container">%4$s</div></body></html>
        ]]></string>
</resources>

Update 1:

I try to use xml.etree.ElementTree and lxml to visit every element in the xml and print the item.text. But it could not print with CDATA delimeter.

from lxml import etree
import xml.etree.ElementTree as ElementTree

CONTENT = """
<process id="process1">
 <log name="name1" device="device1"><![CDATA[timestamp value]]></log>
 <log name="name2" device="device2"><![CDATA[timestamp value, timestamp value, timestamp]]></log>
</process>
"""

def output_with_lxml2():
    parser = etree.XMLParser(strip_cdata=False)
    root = etree.XML(CONTENT, parser)
    print root.text

    print etree.tostring(root)


def output_with_lxml_3_input_file():
    parser = etree.XMLParser(strip_cdata=False)
    tree = etree.parse('input.xml', parser)
    root = tree.getroot()
    for item in root:
        print 'string id = ' + item.attrib['name'] + '  #####  string value = ' + item.text


def output_with_elementtree_input_file():
    tree = ElementTree.parse('input.xml')
    root = tree.getroot()
    count = 0
    for item in root:
        print count, 'string id = ' + item.attrib['name'] + '  #####  string value = ' + item.text
        count = count + 1


if __name__ == '__main__':
    # parse_with_lxml()
    # parse_with_stdlib()
    # output_with_lxml()
    output_with_lxml2()
    output_with_lxml_3_input_file()
    output_with_elementtree_input_file()

And the run result is like this:

/usr/bin/python2.7 /Users/zgong/PycharmProjects/mep_vdca_translation/outputCDATA4.py

 
<process id="process1">
 <log name="name1" device="device1"><![CDATA[timestamp value]]></log>
 <log name="name2" device="device2"><![CDATA[timestamp value, timestamp value, timestamp]]></log>
</process>
string id = card_alerts  #####  string value = <div id="card_alerts" aria-labelledby="card alerts"><h2>Kartenwarnmeldungen</h2><section id="card_alerts_text_messages"><h3>1. SMS</h3><p>1.1 Um Kartenwarnmeldungen per SMS abonnieren zu können, müssen Sie zustimmen, dass SMS an Ihre Mobiltelefonnummer gesendet werden dürfen, einschliesslich einer abschliessenden Bestätigung, wenn Sie den Dienst kündigen, gemäss unseren <a href="tab://terms">Geschäftsbedingungen</a> und der <a href="tab://privacy">Datenschutzrichtlinie</a>. <b>%1$s</b>. Die Nachrichtenfrequenz variiert. T&#8209;Mobile haftet nicht für verzögerte oder nicht übertragene Nachrichten. Für Nachrichten und die Datenübertragung können Standardgebühren anfallen.</p></section><section id="card_alerts_supported_carriers"><h3>2. SUPPORTED CARRIERS</h3><p>2.1 Zu den unterstützten Betreibern zählen: ACS Wireless, Alltel (einschliesslich Midwest), AT&amp;T, Bluegrass, Boost, Cellcom, Cellular One of East Central Illinois, Cellular South, Centennial, Cincinnati Bell, Cox Wireless, East Kentucky Network, GCI Communications, Immix Wireless, Inland Cellular, MetroPCS, Nex-Tech Wireless, nTelos, Revol Wireless, Rural Cellular Corporation, Sprint, T-Mobile® USA (einschliesslich Suncom), Thumb Cellular, U.S. Cellular®, United, MetroPCS, Verizon Wireless, Virgin Mobile USA und WCC oder WCW (West Central Wireless).</p></section></div>
string id = software_license  #####  string value = <b>SOFTWARELIZENZ</b>
string id = software_application_usage  #####  string value = 
            <!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Disclosures</title><style type="text/css"> h1, h2, h3, p { font-family: sans-serif; color: #333333; } h1{ font-size: 1.5em; } h2{ font-size: 1.248em; } h3, p { font-size: 0.998em; } .widgetMarginHelper{ margin : 1em; } </style></head><body class="widgetMarginHelper"><div><h1 id="disclosures_heading">%1$s</h1></div><div><p id="disclosures_legal_intro">%2$s</p></div><div id="software_license_content" aria-labelledby="software license"><div><h2 id="software_license_heading">%3$s</h2></div><section id="software_application_usage">><h3>1. NUTZUNG DER SOFTWAREANWENDUNG</h3><p>1.1 Ihr Dienstanbieter gewährt Ihnen hiermit eine beschränkte, persönliche, widerrufbare, nicht abtretbare, nicht übertragbare und nicht exklusive Lizenz, die Softwareanwendung (einschließlich zukünftiger Updates oder Upgrades, die Ihnen gelegentlich unter der Voraussetzung zur Verfügung gestellt werden, dass Sie anerkennen, dass solche Aktualisierungen oder Upgrades zusätzlichen Bedingungen unterliegen können) gemäß den nachfolgenden Verpflichtungen und Einschränkungen zu nutzen:</p><p>1.1.1 Sie dürfen die Anwendung nur auf einem einzigen registrierten Mobiltelefon nutzen, das sich in Ihrem Besitz oder unter Ihrer Kontrolle befindet. Sie werden jedes zusätzliche oder Ersatz-Mobiltelefon separat registrieren müssen;</p><p>1.1.2 Sie dürfen die Anwendung ausschließlich zum Erhalt der mobilen Dienste nutzen, und zu keinerlei anderem Zweck;</p><p>1.1.3 Die Anwendung wird ausschließlich für Ihre persönliche Nutzung an Sie lizenziert, und es ist Ihnen untersagt, anderen Personen jedwede Nutzungsrechte oder anderweitigen Rechte bezüglich der Anwendung zu übertragen, zu verleihen, weiterzuverbreiten, zu gewähren oder Unterlizenzen zu erteilen;</p><p>1.1.4 Sie dürfen die Softwareanwendung in keinerlei Form ganz oder teilweise kopieren oder vervielfältigen (sofern nicht ausdrücklich durch diese Lizenz erlaubt), dekompilieren, nachkonstruieren, zerlegen, modifizieren, als Grundlage abgeleiteter Werke verwenden, oder versuchen, ihren Quellcode abzuleiten;</p><p>1.1.5 Sie dürfen die Anwendung in keiner Weise verwenden, die die Anwendung (oder jedwede Server oder Netzwerke, die mit der Anwendung verbunden oder verknüpft sind) schädigen, deaktivieren, überlasten oder beeinträchtigen könnte, oder die für eine dritte Partei die Nutzung der und/oder die Freude an der Anwendung störend beeinflussen könnte;</p><p>1.1.6 Sie dürfen keinerlei Urheberrechtsvermerke entfernen oder modifizieren, die der Softwareanwendung beigefügt oder in ihr enthalten sind, und Sie erkennen an und stimmen zu, dass im Rechtsverhältnis zwischen Ihnen und uns die Softwareanwendung unser Eigentum verbleibt, und dass Sie keinerlei Rechte, Rechtstitel oder Ansprüche auf die Anwendung haben, sei es durch Implikation, Rechtsverwirkung oder anderweitig, mit Ausnahme der in dieser Lizenz dargelegten beschränkten Rechte;</p><p>1.1.7 Sie dürfen die Anwendung in keiner Weise zum Zwecke nutzen, testen oder anderweitig verwenden, ein Verfahren oder eine Software zu entwickeln oder zu implementieren, deren Ziel es ist, die Funktionalität der Anwendung (oder jedweder Server oder Netzwerke, die mit der Anwendung verbunden oder verknüpft sind) zu überwachen oder zu beeinträchtigen (einschließlich des Abfangens von Daten);</p><p>1.1.8 Sie dürfen die Sicherheitsfunktionen der Anwendung nicht vorsätzlich beeinträchtigen oder umgehen;</p><p>1.1.9 Sie stimmen auch zu, dass Sie die Anwendung für keine Zwecke, die durch das Recht der Vereinigten Staaten oder durch anwendbares Recht untersagt sind, nutzen werden;</p><p>1.1.10 Bei jedweder Beendigung der mobilen Dienste verfallen alle Rechte, die Ihnen bezüglich der Softwareanwendung gewährt wurden, unmittelbar; und</p><p>1.1.11 Jedwede Open-Source-Software, die der Anwendung möglicherweise beigefügt ist, wird Ihnen gemäß der entsprechenden Open-Source-Lizenzvereinbarung bereitgestellt und nicht gemäß dieser Lizenz, und Ihr Dienstanbieter lehnt jede Haftung bezüglich jedweder bereitgestellten Open-Source-Lizenz ab, wie nachfolgend angegeben.</p></section><section id="software_license_termination"><h3>2. BEENDIGUNG DER SOFTWARELIZENZ</h3><p>2.1 Die Softwarelizenz gilt, sobald Sie die Softwarelizenz akzeptieren oder die Softwareanwendung installieren (je nachdem, was zuerst eintrifft), und bis Sie gemäß den folgenden Bestimmungen oder anderweitig in Übereinstimmung mit der Softwarelizenz beendet wird.</p><p>2.2 Die Softwarelizenz wird automatisch gekündigt, wenn Sie die mobilen Dienste abbestellen und/oder die Softwareanwendung deinstallieren, oder falls Sie diese Lizenz oder die Geschäftsbedingungen der mobilen Dienste nicht erfüllen.</p><p>2.3 Nach Beendigung der Softwarelizenz (aus jedwedem Grund) müssen Sie die Softwareanwendung deinstallieren und alle Kopien der Softwareanwendung einschließlich all ihrer Komponenten, die sich in Ihrem Besitz oder Ihrer Kontrolle befinden, vernichten.</p></section><section id="disclaimer_of_warranty"><h3>3. GEWÄHRLEISTUNGSAUSSCHLUSS</h3><p>3.1 SIE ERKENNEN AN UND STIMMEN ZU, DASS DIE ANWENDUNG, GGF. BEIGEFÜGTE OPEN-SOURCE-LIZENZEN SOWIE DIE MOBILEN DIENSTE IN IHRER VORHANDENEN FORM UND VERFÜGBARKEIT BEREITGESTELLT WERDEN, MIT ALLEN FEHLERN UND OHNE JEGLICHE GEWÄHRLEISTUNG. IHR DIENSTANBIETER SOWIE SEINE TOCHTERUNTERNEHMEN, VERBUNDENEN UNTERNEHMEN, MITARBEITER, BEAUFTRAGTEN, FÜHRUNGSKRÄFTE UND GESCHÄFTSFÜHRER SCHLIESSEN HIERMIT JEDWEDE (AUSDRÜCKLICHEN, IMPLIZIERTEN ODER GESETZLICHEN) GEWÄHRLEISTUNGEN BEZÜGLICH DER ANWENDUNG, GGF. BEIGEFÜGTER OPEN-SOURCE-LIZENZEN UND MOBILER DIENSTE AUS, INSBESONDERE IMPLIZIERTE GEWÄHRLEISTUNGEN FÜR MARKTGÄNGIGKEIT, ZUFRIEDENSTELLENDE QUALITÄT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, GENAUIGKEIT, UNGESTÖRTE NUTZUNG UND NICHTVERLETZUNG DER RECHTE DRITTER. EINIGE RECHTSORDNUNGEN ERLAUBEN KEINE AUSSCHLÜSSE IMPLIZIERTER GEWÄHRLEISTUNGEN ODER BESCHRÄNKUNGEN ANWENDBARER GESETZLICHER RECHTE VON VERBRAUCHERN; DIE VORSTEHEND AUFGEFÜHRTEN AUSSCHLÜSSE UND BESCHRÄNKUNGEN GELTEN ALSO MÖGLICHERWEISE NICHT FÜR SIE.   IHR DIENSTANBIETER GEWÄHRLEISTET NICHT, DASS DIE ANWENDUNG MIT JEDEM MOBILTELEFONTYP KOMPATIBEL IST. UNGEACHTET DES VORSTEHENDEN WIRD DIE HAFTUNG IHRES DIENSTANBIETERS SOWIE SEINER JEWEILIGEN TOCHTERUNTERNEHEN, VERBUNDENEN UNTERNEHMEN, MITARBEITER, BEAUFTRAGTEN, FÜHRUNGSKRÄFTE UND GESCHÄFTSFÜHRER IN KEINEM FALL DIE SUMME VON 100 USD ÜBERSCHREITEN (UNGEACHTET DER FORM DER EINGELEGTEN RECHTSMITTEL, UND UNGEACHTET DESSEN, OB DIESE SICH AUS DEM VERTRAG, EINER UNERLAUBTEN HANDLUNG ODER ANDERWEITIG ERGEBEN).</p></section><section id="limitation_of_liability"><h3>4. HAFTUNGSBESCHRÄNKUNG</h3><p>4.1 SOWEIT IM GESETZLICHEN RAHMEN NICHT UNZULÄSSIG IST IHR DIENSTANBIETER IN KEINEM FALL HAFTBAR FÜR JEDWEDE SCHÄDEN, INSBESONDERE DIREKTE, INDIREKTE, BESONDERE, ZUFÄLLIGE ODER ALS FOLGE ENTSTANDENE SCHÄDEN, VERLUSTE ODER KOSTEN, DIE SICH AUS DER ANWENDUNG, GGF. BEIGEFÜGTEN OPEN-SOURCE-LIZENZEN, DEN MOBILEN DIENSTEN SOWIE DEREN NUTZUNG ODER UNMÖGLICHKEIT DER NUTZUNG SEITENS JEGLICHER PARTEI ERGEBEN, ODER IM ZUSAMMENHANG MIT JEGLICHEN FUNKTIONSAUSFÄLLEN, FEHLERN, AUSLASSUNGEN, UNTERBRECHUNGEN, DEFEKTEN, BETRIEBS- ODER ÜBERTRAGUNGSVERZÖGERUNGEN, COMPUTERVIREN ODER SYSTEMAUSFÄLLEN, SELBST WENN IHR DIENSTANBIETER ODER DESSEN VERTRETER AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN, VERLUSTE ODER KOSTEN HINGEWIESEN WURDEN.</p></section><section id="expert_control"><h3>5. EXPORTKONTROLLE</h3><p>5.1 Sie dürfen die Anwendung nur im Einklang mit den Gesetzen der Vereinigten Staaten nutzen oder anderweitig exportieren oder reexportieren. Insbesondere darf die Anwendung nicht exportiert oder reexportiert werden (a) in ein von den Vereinigten Staaten mit einem Embargo belegtes Land, oder (b) an jedwede Person, die auf der Liste der „Specially Designated Nationals“ des US-Finanzministeriums oder der „Denied Person’s List“ oder der „Entity List“ des US-Handelsministeriums verzeichnet ist. Indem Sie die Anwendung nutzen, versichern und garantieren Sie, dass Sie sich nicht in einem solchen Land befinden oder auf einer solchen Liste verzeichnet sind.</p></section></div><div id="card_alerts_container">%4$s</div></body></html>
        

Process finished with exit code 0

Try this.

from simplified_scrapy import SimplifiedDoc, utils

# xml = utils.getFileContent('your xml file.xml')
xml = '''
<resources>
    <string name="card_alerts"><![CDATA[<div id="card_alerts" aria-labelledby="card alerts"><h2>Kartenwarnmeldungen</h2><section id="card_alerts_text_messages"><h3>1. SMS</h3><p>1.1 Um Kartenwarnmeldungen per SMS abonnieren zu können, müssen Sie zustimmen, dass SMS an Ihre Mobiltelefonnummer gesendet werden dürfen, einschliesslich einer abschliessenden Bestätigung, wenn Sie den Dienst kündigen, gemäss unseren <a href="tab://terms">Geschäftsbedingungen</a> und der <a href="tab://privacy">Datenschutzrichtlinie</a>. <b>%1$s</b>. Die Nachrichtenfrequenz variiert. T&#8209;Mobile haftet nicht für verzögerte oder nicht übertragene Nachrichten. Für Nachrichten und die Datenübertragung können Standardgebühren anfallen.</p></section><section id="card_alerts_supported_carriers"><h3>2. SUPPORTED CARRIERS</h3><p>2.1 Zu den unterstützten Betreibern zählen: ACS Wireless, Alltel (einschliesslich Midwest), AT&amp;T, Bluegrass, Boost, Cellcom, Cellular One of East Central Illinois, Cellular South, Centennial, Cincinnati Bell, Cox Wireless, East Kentucky Network, GCI Communications, Immix Wireless, Inland Cellular, MetroPCS, Nex-Tech Wireless, nTelos, Revol Wireless, Rural Cellular Corporation, Sprint, T-Mobile® USA (einschliesslich Suncom), Thumb Cellular, U.S. Cellular®, United, MetroPCS, Verizon Wireless, Virgin Mobile USA und WCC oder WCW (West Central Wireless).</p></section></div>]]></string>
    <string name="software_license"><![CDATA[<b>SOFTWARELIZENZ</b>]]></string>
    <string name="software_application_usage"><![CDATA[
            <!DOCTYPE html><html lang="en-US"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Disclosures</title><style type="text/css"> h1, h2, h3, p { font-family: sans-serif; color: #333333; } h1{ font-size: 1.5em; } h2{ font-size: 1.248em; } h3, p { font-size: 0.998em; } .widgetMarginHelper{ margin : 1em; } </style></head><body class="widgetMarginHelper"><div><h1 id="disclosures_heading">%1$s</h1></div><div><p id="disclosures_legal_intro">%2$s</p></div><div id="software_license_content" aria-labelledby="software license"><div><h2 id="software_license_heading">%3$s</h2></div><section id="software_application_usage">><h3>1. NUTZUNG DER SOFTWAREANWENDUNG</h3><p>1.1 Ihr Dienstanbieter gewährt Ihnen hiermit eine beschränkte, persönliche, widerrufbare, nicht abtretbare, nicht übertragbare und nicht exklusive Lizenz, die Softwareanwendung (einschließlich zukünftiger Updates oder Upgrades, die Ihnen gelegentlich unter der Voraussetzung zur Verfügung gestellt werden, dass Sie anerkennen, dass solche Aktualisierungen oder Upgrades zusätzlichen Bedingungen unterliegen können) gemäß den nachfolgenden Verpflichtungen und Einschränkungen zu nutzen:</p><p>1.1.1 Sie dürfen die Anwendung nur auf einem einzigen registrierten Mobiltelefon nutzen, das sich in Ihrem Besitz oder unter Ihrer Kontrolle befindet. Sie werden jedes zusätzliche oder Ersatz-Mobiltelefon separat registrieren müssen;</p><p>1.1.2 Sie dürfen die Anwendung ausschließlich zum Erhalt der mobilen Dienste nutzen, und zu keinerlei anderem Zweck;</p><p>1.1.3 Die Anwendung wird ausschließlich für Ihre persönliche Nutzung an Sie lizenziert, und es ist Ihnen untersagt, anderen Personen jedwede Nutzungsrechte oder anderweitigen Rechte bezüglich der Anwendung zu übertragen, zu verleihen, weiterzuverbreiten, zu gewähren oder Unterlizenzen zu erteilen;</p><p>1.1.4 Sie dürfen die Softwareanwendung in keinerlei Form ganz oder teilweise kopieren oder vervielfältigen (sofern nicht ausdrücklich durch diese Lizenz erlaubt), dekompilieren, nachkonstruieren, zerlegen, modifizieren, als Grundlage abgeleiteter Werke verwenden, oder versuchen, ihren Quellcode abzuleiten;</p><p>1.1.5 Sie dürfen die Anwendung in keiner Weise verwenden, die die Anwendung (oder jedwede Server oder Netzwerke, die mit der Anwendung verbunden oder verknüpft sind) schädigen, deaktivieren, überlasten oder beeinträchtigen könnte, oder die für eine dritte Partei die Nutzung der und/oder die Freude an der Anwendung störend beeinflussen könnte;</p><p>1.1.6 Sie dürfen keinerlei Urheberrechtsvermerke entfernen oder modifizieren, die der Softwareanwendung beigefügt oder in ihr enthalten sind, und Sie erkennen an und stimmen zu, dass im Rechtsverhältnis zwischen Ihnen und uns die Softwareanwendung unser Eigentum verbleibt, und dass Sie keinerlei Rechte, Rechtstitel oder Ansprüche auf die Anwendung haben, sei es durch Implikation, Rechtsverwirkung oder anderweitig, mit Ausnahme der in dieser Lizenz dargelegten beschränkten Rechte;</p><p>1.1.7 Sie dürfen die Anwendung in keiner Weise zum Zwecke nutzen, testen oder anderweitig verwenden, ein Verfahren oder eine Software zu entwickeln oder zu implementieren, deren Ziel es ist, die Funktionalität der Anwendung (oder jedweder Server oder Netzwerke, die mit der Anwendung verbunden oder verknüpft sind) zu überwachen oder zu beeinträchtigen (einschließlich des Abfangens von Daten);</p><p>1.1.8 Sie dürfen die Sicherheitsfunktionen der Anwendung nicht vorsätzlich beeinträchtigen oder umgehen;</p><p>1.1.9 Sie stimmen auch zu, dass Sie die Anwendung für keine Zwecke, die durch das Recht der Vereinigten Staaten oder durch anwendbares Recht untersagt sind, nutzen werden;</p><p>1.1.10 Bei jedweder Beendigung der mobilen Dienste verfallen alle Rechte, die Ihnen bezüglich der Softwareanwendung gewährt wurden, unmittelbar; und</p><p>1.1.11 Jedwede Open-Source-Software, die der Anwendung möglicherweise beigefügt ist, wird Ihnen gemäß der entsprechenden Open-Source-Lizenzvereinbarung bereitgestellt und nicht gemäß dieser Lizenz, und Ihr Dienstanbieter lehnt jede Haftung bezüglich jedweder bereitgestellten Open-Source-Lizenz ab, wie nachfolgend angegeben.</p></section><section id="software_license_termination"><h3>2. BEENDIGUNG DER SOFTWARELIZENZ</h3><p>2.1 Die Softwarelizenz gilt, sobald Sie die Softwarelizenz akzeptieren oder die Softwareanwendung installieren (je nachdem, was zuerst eintrifft), und bis Sie gemäß den folgenden Bestimmungen oder anderweitig in Übereinstimmung mit der Softwarelizenz beendet wird.</p><p>2.2 Die Softwarelizenz wird automatisch gekündigt, wenn Sie die mobilen Dienste abbestellen und/oder die Softwareanwendung deinstallieren, oder falls Sie diese Lizenz oder die Geschäftsbedingungen der mobilen Dienste nicht erfüllen.</p><p>2.3 Nach Beendigung der Softwarelizenz (aus jedwedem Grund) müssen Sie die Softwareanwendung deinstallieren und alle Kopien der Softwareanwendung einschließlich all ihrer Komponenten, die sich in Ihrem Besitz oder Ihrer Kontrolle befinden, vernichten.</p></section><section id="disclaimer_of_warranty"><h3>3. GEWÄHRLEISTUNGSAUSSCHLUSS</h3><p>3.1 SIE ERKENNEN AN UND STIMMEN ZU, DASS DIE ANWENDUNG, GGF. BEIGEFÜGTE OPEN-SOURCE-LIZENZEN SOWIE DIE MOBILEN DIENSTE IN IHRER VORHANDENEN FORM UND VERFÜGBARKEIT BEREITGESTELLT WERDEN, MIT ALLEN FEHLERN UND OHNE JEGLICHE GEWÄHRLEISTUNG. IHR DIENSTANBIETER SOWIE SEINE TOCHTERUNTERNEHMEN, VERBUNDENEN UNTERNEHMEN, MITARBEITER, BEAUFTRAGTEN, FÜHRUNGSKRÄFTE UND GESCHÄFTSFÜHRER SCHLIESSEN HIERMIT JEDWEDE (AUSDRÜCKLICHEN, IMPLIZIERTEN ODER GESETZLICHEN) GEWÄHRLEISTUNGEN BEZÜGLICH DER ANWENDUNG, GGF. BEIGEFÜGTER OPEN-SOURCE-LIZENZEN UND MOBILER DIENSTE AUS, INSBESONDERE IMPLIZIERTE GEWÄHRLEISTUNGEN FÜR MARKTGÄNGIGKEIT, ZUFRIEDENSTELLENDE QUALITÄT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, GENAUIGKEIT, UNGESTÖRTE NUTZUNG UND NICHTVERLETZUNG DER RECHTE DRITTER. EINIGE RECHTSORDNUNGEN ERLAUBEN KEINE AUSSCHLÜSSE IMPLIZIERTER GEWÄHRLEISTUNGEN ODER BESCHRÄNKUNGEN ANWENDBARER GESETZLICHER RECHTE VON VERBRAUCHERN; DIE VORSTEHEND AUFGEFÜHRTEN AUSSCHLÜSSE UND BESCHRÄNKUNGEN GELTEN ALSO MÖGLICHERWEISE NICHT FÜR SIE.   IHR DIENSTANBIETER GEWÄHRLEISTET NICHT, DASS DIE ANWENDUNG MIT JEDEM MOBILTELEFONTYP KOMPATIBEL IST. UNGEACHTET DES VORSTEHENDEN WIRD DIE HAFTUNG IHRES DIENSTANBIETERS SOWIE SEINER JEWEILIGEN TOCHTERUNTERNEHEN, VERBUNDENEN UNTERNEHMEN, MITARBEITER, BEAUFTRAGTEN, FÜHRUNGSKRÄFTE UND GESCHÄFTSFÜHRER IN KEINEM FALL DIE SUMME VON 100 USD ÜBERSCHREITEN (UNGEACHTET DER FORM DER EINGELEGTEN RECHTSMITTEL, UND UNGEACHTET DESSEN, OB DIESE SICH AUS DEM VERTRAG, EINER UNERLAUBTEN HANDLUNG ODER ANDERWEITIG ERGEBEN).</p></section><section id="limitation_of_liability"><h3>4. HAFTUNGSBESCHRÄNKUNG</h3><p>4.1 SOWEIT IM GESETZLICHEN RAHMEN NICHT UNZULÄSSIG IST IHR DIENSTANBIETER IN KEINEM FALL HAFTBAR FÜR JEDWEDE SCHÄDEN, INSBESONDERE DIREKTE, INDIREKTE, BESONDERE, ZUFÄLLIGE ODER ALS FOLGE ENTSTANDENE SCHÄDEN, VERLUSTE ODER KOSTEN, DIE SICH AUS DER ANWENDUNG, GGF. BEIGEFÜGTEN OPEN-SOURCE-LIZENZEN, DEN MOBILEN DIENSTEN SOWIE DEREN NUTZUNG ODER UNMÖGLICHKEIT DER NUTZUNG SEITENS JEGLICHER PARTEI ERGEBEN, ODER IM ZUSAMMENHANG MIT JEGLICHEN FUNKTIONSAUSFÄLLEN, FEHLERN, AUSLASSUNGEN, UNTERBRECHUNGEN, DEFEKTEN, BETRIEBS- ODER ÜBERTRAGUNGSVERZÖGERUNGEN, COMPUTERVIREN ODER SYSTEMAUSFÄLLEN, SELBST WENN IHR DIENSTANBIETER ODER DESSEN VERTRETER AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN, VERLUSTE ODER KOSTEN HINGEWIESEN WURDEN.</p></section><section id="expert_control"><h3>5. EXPORTKONTROLLE</h3><p>5.1 Sie dürfen die Anwendung nur im Einklang mit den Gesetzen der Vereinigten Staaten nutzen oder anderweitig exportieren oder reexportieren. Insbesondere darf die Anwendung nicht exportiert oder reexportiert werden (a) in ein von den Vereinigten Staaten mit einem Embargo belegtes Land, oder (b) an jedwede Person, die auf der Liste der „Specially Designated Nationals“ des US-Finanzministeriums oder der „Denied Person’s List“ oder der „Entity List“ des US-Handelsministeriums verzeichnet ist. Indem Sie die Anwendung nutzen, versichern und garantieren Sie, dass Sie sich nicht in einem solchen Land befinden oder auf einer solchen Liste verzeichnet sind.</p></section></div><div id="card_alerts_container">%4$s</div></body></html>
        ]]></string>
</resources>
'''
doc = SimplifiedDoc(xml)
for string in doc.selects('string'):
    if string['name'] == 'card_alerts' or string['name'] == 'software_application_usage':
        string.remove()
    else:
        print (string.html)
print(doc.html)

utils.saveFile('test.xml', doc.html)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM