ich das folgende unerwartete Verhalten mit den von Python 3.4 der verwendeten xml
Parsern erlebt habe BeautifulSoup 4. Wenn ein XML-Stylesheet-Parsing, das Fragezeichen in dem Endbegrenzer verschwindet:XML-Parser entfernt Nähe Verarbeitungsanweisungstrennzeichen der Fragezeichen
Eingang:
BeautifulSoup('<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="myStyleSheet.xsl" type="text/xsl"?>','xml')
Ausgang:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="myStyleSheet.xsl" type="text/xsl">
Beachten Sie, wie type="text/xsl"?>
geändert type="text/xsl">
.
Auch das Beispiel gefunden here bricht auf die gleiche Weise.
Ist das beabsichtigt? Soll ich einen Fehler melden? Gibt es eine Möglichkeit, dies zu verhindern, außer ein Fragezeichen an der richtigen Stelle hinterher einzufügen?
Ich weiß nicht, was die BeautifulSoup-Spezifikation sagt, aber das Entfernen des Fragezeichens ist korrekt, wenn Sie HTML generieren, und falsch, wenn Sie XML generieren. –
Der XML-Parser sollte speziell mit XML umgehen. Lustig ist, dass die HMTL-Parser, die ich ausprobiert habe ('html.parser' und' lxml') _don't_ das Fragezeichen entfernen. (Aber sie tun andere Dinge, die ich nicht will) – Swier
xml.etree.ElementTree tut genau dasselbe wie lxml.etree –