python - मैं सुंदर एसoup 4 का उपयोग कर एक XML घोषणा कैसे निकालूं?



xhtml beautifulsoup (1)

मेरे पास एक्सएचटीएमएल फ़ाइल है जो इस तरह संरचित है:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
...
</head>
<body>
...
</body>
<html>

मैं सुंदरसूप का उपयोग कर रहा हूं और मैं दस्तावेज़ से XML घोषणा को निकालना चाहता हूं, इसलिए मुझे इस तरह दिखता है:

<!DOCTYPE html>
<html lang="en">
<head>
...
</head>
<body>
...
</body>
<html>

मुझे इसे निकालने के लिए XML घोषणापत्र प्राप्त करने का कोई तरीका नहीं मिल सकता है। यह एक डॉकटाइप, घोषणा, टैग, या नेविगेटिव स्ट्रिंग के रूप में मैं बता सकता हूं, ऐसा नहीं लगता है। क्या ऐसा कोई तरीका है जो इसे निकालने के लिए मिल सकता है?

काम के उदाहरण के रूप में, मैं Doctype को इस तरह से कोड के साथ निकाल सकता हूं (दस्तावेज़ पाठ को संभालने वाला "html" है):

soup = BeautifulSoup(html)
[item.extract() for item in soup.contents if isinstance(item, Doctype)]

आप निम्न दृष्टिकोण का उपयोग कर सकते हैं:

import bs4
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')

for e in soup:
    if isinstance(e, bs4.element.ProcessingInstruction):
        e.extract()
        break




xml-declaration