Ich habe BeautifulSoup4 v4.6.0 und Lxml v3.8.0 installiert. Ich versuche die folgende xhtml
zu parsen.BeautifulSoup4 mit Lxml Xml Parser entfernt Xmlns Attribute von Inline-Svg in XHTML-Datei
Mein Code zu analysieren: Allerdings
from bs4 import BeautifulSoup
xhtml_string = """
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body class="sgc-1">
<svg xmlns="http://www.w3.org/2000/svg" height="100%" preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 600 800" width="100%" xmlns:xlink="http://www.w3.org/1999/xlink">
<image height="800" width="573" xlink:href="../Images/Cover.jpg"></image>
</svg>
</body>
</html>
"""
soup = BeautifulSoup(xhtml_string, 'xml')
, wenn ich die Suppe inspizieren, es scheint, dass BeautifulSoup die xmlns="http://www.w3.org/2000/svg"
und die xmlns:xlink="http://www.w3.org/1999/xlink"
auf dem <svg>
Tag und xlink
Präfix auf dem href
Attribut auf dem <image>
Tag abgestreift hat.
heißt soup.prettify()
gibt die folgende
<?xml version="1.0" encoding="unicode-escape"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body class="sgc-1">
<svg height="100%" preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 600 800" width="100%">
<image height="800" href="../Images/Cover.jpg" width="573"/>
</svg>
</body>
</html>
I xhtml
nicht die Möglichkeit haben, um die Quelle zu ändern und von dem, was ich die xmlns
Erklärungen gelten gesehen habe. Gibt es eine Möglichkeit, BeautifulSoup die xhtml
zu erhalten, wie es ist?