{"id":61366,"date":"2024-11-29T15:44:11","date_gmt":"2024-11-29T15:44:11","guid":{"rendered":"https:\/\/proxidize.com\/?post_type=blog&#038;p=61366"},"modified":"2025-10-23T12:13:44","modified_gmt":"2025-10-23T11:13:44","slug":"parse-xml-in-python","status":"publish","type":"blog","link":"https:\/\/proxidize.com\/blog\/parse-xml-in-python\/","title":{"rendered":"How to Parse XML in Python"},"content":{"rendered":"\n<p>Learning to parse XML in <a href=\"https:\/\/proxidize.com\/blog\/what-is-python\/\" target=\"_blank\" data-type=\"blog\" data-id=\"84057\" rel=\"noreferrer noopener\">Python<\/a> is a good skill to have when working with structured data. XML is used for data storage and transfer because of its flexibility and readability. It comes in handy for extracting data from a website, processing configuration files, and analyzing large datasets. In this article, we will explain what XML is, understand the structure of it, and explore five different ways to parse XML in Python. With this guide, you will find more options to help you with your next project.<\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized centered\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1010\" height=\"569\" src=\"https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/what-is-xml-2.jpg\" alt=\"Image of a man staring at a large computer with text above stating &quot;What Is XML?&quot;\" class=\"wp-image-61465\" style=\"object-fit:cover\" srcset=\"https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/what-is-xml-2.jpg 1010w, https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/what-is-xml-2-300x169.jpg 300w, https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/what-is-xml-2-768x433.jpg 768w, https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/what-is-xml-2-600x338.jpg 600w\" sizes=\"(max-width: 1010px) 100vw, 1010px\" \/><\/figure>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What is XML?<\/h2>\n\n\n\n<p>XML or <a href=\"https:\/\/aws.amazon.com\/what-is\/xml\/#:~:text=Extensible%20Markup%20Language%20(XML)%20is,implemented%20for%20structured%20data%20management.\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Extensible Markup Language<\/a> is a language used in an array of applications and systems. It is a structured and hierarchical data format that allows data storage and exchange between platforms and applications. XML was designed to be readable by both humans and machines which is why the design goals of XML emphasize simplicity, generality, and usability. It is organized in a tree which makes it simple to store and find data. XML is generally a preferred format due to its ability to be used with any operating system, its simplicity, and how readable it is, given that non-developers can read and understand it without worry.<\/p>\n\n\n\n<p><\/p>\n\n\n\t\t<div data-elementor-type=\"container\" data-elementor-id=\"85913\" class=\"elementor elementor-85913\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2bece1e e-con-full no-scale elementor-hidden-mobile_extra elementor-hidden-mobile e-flex e-con e-child\" data-id=\"2bece1e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-6238a87 e-grid e-con-full e-con e-child\" data-id=\"6238a87\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f8e1416 e-con-full e-flex e-con e-child\" data-id=\"f8e1416\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-25ccff7 elementor-widget elementor-widget-heading\" data-id=\"25ccff7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">A completely anonymous profile starts<br>\nwith the highest quality mobile proxies<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8dff58a e-con-full e-flex e-con e-child\" data-id=\"8dff58a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-ffecf2a e-con-full e-flex e-con e-child\" data-id=\"ffecf2a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-75ae4a0 elementor-widget__width-initial elementor-widget elementor-widget-image\" data-id=\"75ae4a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"125\" height=\"80\" src=\"https:\/\/proxidize.com\/wp-content\/uploads\/2025\/10\/20-2.svg\" class=\"attachment-full size-full wp-image-86191\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-40324b9 inline-CTA elementor-widget elementor-widget-button\" data-id=\"40324b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/proxidize.com\/mobile-proxy-pricing\/?coupon_code=20OFFMPB\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Buy Proxies Now<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Understanding the Structure<\/h3>\n\n\n\n<p>Before we go into how you could parse XML in Python, it is best to understand the structure of an XML file. For the purposes of this example, we will be using an <a href=\"https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)\" target=\"_blank\" rel=\"noreferrer noopener\">XML file from Microsoft<\/a> that shows a list of books. There are two ways that you can parse XML files; through a link that contains an XML document or by using an XML document saved on your device. The principal remains the same except for the source of the file. For the purposes of this article, we will be conducting all our examples off of the link to the XML file from Microsoft. However, as the URL is an HTML page with an XML file embedded code snippet, all our scripts will need to extract the XML from the HTML using <a href=\"https:\/\/proxidize.com\/blog\/what-is-beautifulsoup\/\" target=\"_blank\" data-type=\"blog\" data-id=\"84203\" rel=\"noreferrer noopener\">BeautifulSoup<\/a>.\u00a0<\/p>\n\n\n\n<p>XML files consist of four sections:&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Root Element<\/strong>: At the very top of the list is the root element. This is the descriptor of what the list will entail and will contain all the other elements within it. In the case of our example, this is the &lt;catalog&gt; tag.<\/li>\n\n\n\n<li><strong>Attribute<\/strong>: The attribute is the specific ID or title of the element. For our example, this would be &lt;book id&gt;. This is the categorical attribute assigned to the specific subject. Where catalog is the main identifier, book id is the item.&nbsp;<\/li>\n\n\n\n<li><strong>Child Elements<\/strong>: These are the elements that include details about the root. For our example &lt;book&gt; would be the child element as each contains details about the books.&nbsp;<\/li>\n\n\n\n<li><strong>Sub-Elements<\/strong>: A child element can contain more information within the structure. The &lt;book&gt; child element contains the sub-elements of author, title, genre, price, publication date, and description.&nbsp;<\/li>\n<\/ol>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized centered\"><img decoding=\"async\" width=\"1010\" height=\"569\" src=\"https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/ways-to-parse-2.jpg\" alt=\"An image of a large clipboard with three people surrounding it and text of XML parsing languages around them and a text above reading &quot;Ways to Parse XML in Python&quot;\" class=\"wp-image-61467\" style=\"object-fit:cover\" srcset=\"https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/ways-to-parse-2.jpg 1010w, https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/ways-to-parse-2-300x169.jpg 300w, https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/ways-to-parse-2-768x433.jpg 768w, https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/ways-to-parse-2-600x338.jpg 600w\" sizes=\"(max-width: 1010px) 100vw, 1010px\" \/><\/figure>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Ways to Parse XML in Python<\/h2>\n\n\n\n<p>There are internal and external libraries that can help parse XML in Python. The three internal libraries are ElementTree, MiniDOM, and SAX Parser while the external libraries are BeautifulSoup, Lmxl, and Untangle. We will go through what each library is and how it can be used.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ElementTree<\/h3>\n\n\n\n<p>ElementTree is a built-in Python XML parser that provides functions to read, alter, and modify XML files. It creates a tree-like structure that stores the data in a hierarchical format. The first step to using it is to import <code>xml.etree.ElementTree<\/code> and call the XML file\u2019s <code>parse()<\/code> function. You can also provide the input file in a str format using the <code>fromstring()<\/code> function. After the parsed tree is analyzed, users can retrieve the root tag using the <code>root()<\/code> function.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"import xml.etree.ElementTree as ET\nimport requests\nfrom bs4 import BeautifulSoup\n# Fetch and extract XML content from the URL\nurl = &quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.content, &quot;html.parser&quot;)\nxml_content = soup.find(&quot;pre&quot;).text  # Locate the &lt;pre&gt; tag containing the XML\n# Parse the XML content\nroot = ET.fromstring(xml_content)\n# Example: Print all child tags\nfor child in root:\n    print(child.tag, child.attrib)\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> xml<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">etree<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">ElementTree <\/span><span style=\"color: #3E8FB0\">as<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">ET<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> requests<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">from<\/span><span style=\"color: #E0DEF4\"> bs4 <\/span><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Fetch and extract XML content from the URL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">url <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">response <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> requests<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">get<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">url<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">soup <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">response<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">content<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;html.parser&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_content <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> soup<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;pre&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text  <\/span><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Locate the &lt;pre&gt; tag containing the XML<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Parse the XML content<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">root <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">ET<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">fromstring<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">xml_content<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Example: Print all child tags<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">for<\/span><span style=\"color: #E0DEF4\"> child <\/span><span style=\"color: #3E8FB0\">in<\/span><span style=\"color: #E0DEF4\"> root<\/span><span style=\"color: #908CAA\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">child<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">tag<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> child<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">attrib<\/span><span style=\"color: #908CAA\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Output:<br><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(1 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"book {'id': 'bk101'}\nbook {'id': 'bk102'}\nbook {'id': 'bk103'}\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #E0DEF4\">book <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #F6C177\">&#039;id&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;bk101&#039;<\/span><span style=\"color: #908CAA\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">book <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #F6C177\">&#039;id&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;bk102&#039;<\/span><span style=\"color: #908CAA\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">book <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #F6C177\">&#039;id&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;bk103&#039;<\/span><span style=\"color: #908CAA\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Similarly, using the <code>iter()<\/code> function would help you find any element you wish to extract in the tree. As an example, let us extract the description of each book in the file. This will look like this:<br><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"import xml.etree.ElementTree as ET\nimport requests\nfrom bs4 import BeautifulSoup\n# Fetch and extract XML content from the URL\nurl = &quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.content, &quot;html.parser&quot;)\nxml_snippet = soup.find(&quot;pre&quot;)  # Locate the &lt;pre&gt; tag containing the XML\n# Check if the XML snippet was found\nif not xml_snippet:\n    raise Exception(&quot;Could not find the XML snippet on the webpage.&quot;)\n# Parse the XML content\nxml_content = xml_snippet.text.strip()\nroot = ET.fromstring(xml_content)\n# Iterate through all books\nfor book in root.findall(&quot;book&quot;):\n    book_id = book.attrib.get(&quot;id&quot;, &quot;N\/A&quot;)  # Access the 'id' attribute\n    author = book.find(&quot;author&quot;).text.strip() if book.find(&quot;author&quot;) is not None else &quot;Unknown Author&quot;\n    title = book.find(&quot;title&quot;).text.strip() if book.find(&quot;title&quot;) is not None else &quot;Unknown Title&quot;\n    genre = book.find(&quot;genre&quot;).text.strip() if book.find(&quot;genre&quot;) is not None else &quot;Unknown Genre&quot;\n    price = book.find(&quot;price&quot;).text.strip() if book.find(&quot;price&quot;) is not None else &quot;Unknown Price&quot;\n    publish_date = book.find(&quot;publish_date&quot;).text.strip() if book.find(&quot;publish_date&quot;) is not None else &quot;Unknown Publish Date&quot;\n    description = book.find(&quot;description&quot;).text.strip() if book.find(&quot;description&quot;) is not None else &quot;Unknown Description&quot;\n    # Print the extracted data\n    print(f&quot;ID: {book_id}&quot;)\n    print(f&quot;Author: {author}&quot;)\n    print(f&quot;Title: {title}&quot;)\n    print(f&quot;Genre: {genre}&quot;)\n    print(f&quot;Price: {price}&quot;)\n    print(f&quot;Publish Date: {publish_date}&quot;)\n    print(f&quot;Description: {description}&quot;)\n    print()\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> xml<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">etree<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">ElementTree <\/span><span style=\"color: #3E8FB0\">as<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">ET<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> requests<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">from<\/span><span style=\"color: #E0DEF4\"> bs4 <\/span><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Fetch and extract XML content from the URL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">url <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">response <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> requests<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">get<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">url<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">soup <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">response<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">content<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;html.parser&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_snippet <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> soup<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;pre&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\">  <\/span><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Locate the &lt;pre&gt; tag containing the XML<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Check if the XML snippet was found<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">not<\/span><span style=\"color: #E0DEF4\"> xml_snippet<\/span><span style=\"color: #908CAA\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #3E8FB0\">raise<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #9CCFD8\">Exception<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;Could not find the XML snippet on the webpage.&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Parse the XML content<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_content <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> xml_snippet<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">text<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">root <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">ET<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">fromstring<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">xml_content<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Iterate through all books<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">for<\/span><span style=\"color: #E0DEF4\"> book <\/span><span style=\"color: #3E8FB0\">in<\/span><span style=\"color: #E0DEF4\"> root<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">findall<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;book&quot;<\/span><span style=\"color: #908CAA\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    book_id <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">attrib<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">get<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;id&quot;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;N\/A&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\">  <\/span><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Access the &#039;id&#039; attribute<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    author <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;author&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;author&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">is<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">not<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">None<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">else<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;Unknown Author&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    title <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;title&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;title&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">is<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">not<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">None<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">else<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;Unknown Title&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    genre <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;genre&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;genre&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">is<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">not<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">None<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">else<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;Unknown Genre&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    price <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;price&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;price&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">is<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">not<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">None<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">else<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;Unknown Price&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    publish_date <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;publish_date&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;publish_date&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">is<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">not<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">None<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">else<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;Unknown Publish Date&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    description <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;description&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;description&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">is<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">not<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">None<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">else<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;Unknown Description&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Print the extracted data<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;ID: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">book_id<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Author: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">author<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Title: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">title<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Genre: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">genre<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Price: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">price<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Publish Date: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">publish_date<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Description: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">description<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Output:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"ID: bk101\nAuthor: Gambardella, Matthew\nTitle: XML Developer's Guide\nGenre: Computer\nPrice: 44.95\nPublish Date: 2000-10-01\nDescription: An in-depth look at creating applications \n      with XML.\nID: bk102\nAuthor: Ralls, Kim\nTitle: Midnight Rain\nGenre: Fantasy\nPrice: 5.95\nPublish Date: 2000-12-16\nDescription: A former architect battles corporate zombies, \n      an evil sorceress, and her own childhood to become queen \n      of the world.\nID: bk103\nAuthor: Corets, Eva\nTitle: Maeve Ascendant\nGenre: Fantasy\nPrice: 5.95\nPublish Date: 2000-11-17\nDescription: After the collapse of a nanotechnology \n      society in England, the young survivors lay the \n      foundation for a new society.\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">ID<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> bk101<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Gambardella<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Matthew<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">XML<\/span><span style=\"color: #E0DEF4\"> Developer<\/span><span style=\"color: #F6C177\">&#039;s Guide<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Genre<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Computer<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Price<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">44.95<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Publish Date<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">2000<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">10<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #EB6F92\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Description<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> An <\/span><span style=\"color: #3E8FB0\">in-<\/span><span style=\"color: #E0DEF4\">depth look at creating applications <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      <\/span><span style=\"color: #3E8FB0\">with<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">XML<\/span><span style=\"color: #908CAA\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">ID<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> bk102<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Ralls<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Kim<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Midnight Rain<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Genre<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Fantasy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Price<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">5.95<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Publish Date<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">2000<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">12<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">16<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Description<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> A former architect battles corporate zombies<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      an evil sorceress<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">and<\/span><span style=\"color: #E0DEF4\"> her own childhood to become queen <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      of the world<\/span><span style=\"color: #908CAA\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">ID<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> bk103<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Corets<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Eva<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Maeve Ascendant<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Genre<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Fantasy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Price<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">5.95<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Publish Date<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">2000<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">11<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">17<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Description<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> After the collapse of a nanotechnology <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      society <\/span><span style=\"color: #3E8FB0\">in<\/span><span style=\"color: #E0DEF4\"> England<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> the young survivors lay the <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      foundation <\/span><span style=\"color: #3E8FB0\">for<\/span><span style=\"color: #E0DEF4\"> a new society<\/span><span style=\"color: #908CAA\">.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:12px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">MiniDOM<\/h3>\n\n\n\n<p>miniDOM or <a href=\"https:\/\/docs.python.org\/3\/library\/xml.dom.minidom.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Minimal Document Object Model<\/a> loads the input XML file into memory and creates a tree-like structure referred to as a \u201cDOM Tree\u201d to store elements, attributes, and text content. Since XML files already have a hierarchical tree structure, using miniDOM is convenient for navigating and retrieving information. To start it off, you must import <code>xml.dom.minidom.parse()<\/code> to start parsing and get the root element.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"import xml.dom.minidom\nimport requests\nfrom bs4 import BeautifulSoup\n# Fetch and extract XML content from the URL\nurl = &quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.content, &quot;html.parser&quot;)\nxml_content = soup.find(&quot;pre&quot;).text\n# Parse the XML content\nxml_doc = xml.dom.minidom.parseString(xml_content)\n# Example: Print the root element\nroot = xml_doc.documentElement\nprint(&quot;Root is&quot;, root)\n# Example: Print each book's title and author\nbooks = xml_doc.getElementsByTagName(&quot;book&quot;)\nfor book in books:\n    title = book.getElementsByTagName(&quot;title&quot;)[0].childNodes[0].data\n    author = book.getElementsByTagName(&quot;author&quot;)[0].childNodes[0].data\n    print(f&quot;Title: {title}, Author: {author}&quot;)\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> xml<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">dom<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">minidom<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> requests<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">from<\/span><span style=\"color: #E0DEF4\"> bs4 <\/span><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Fetch and extract XML content from the URL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">url <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">response <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> requests<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">get<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">url<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">soup <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">response<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">content<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;html.parser&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_content <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> soup<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;pre&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Parse the XML content<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_doc <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> xml<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">dom<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">minidom<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">parseString<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">xml_content<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Example: Print the root element<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">root <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> xml_doc<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">documentElement<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;Root is&quot;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> root<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Example: Print each book&#039;s title and author<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">books <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> xml_doc<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getElementsByTagName<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;book&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">for<\/span><span style=\"color: #E0DEF4\"> book <\/span><span style=\"color: #3E8FB0\">in<\/span><span style=\"color: #E0DEF4\"> books<\/span><span style=\"color: #908CAA\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    title <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getElementsByTagName<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;title&quot;<\/span><span style=\"color: #908CAA\">)[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">childNodes<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">data<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    author <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getElementsByTagName<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;author&quot;<\/span><span style=\"color: #908CAA\">)[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">childNodes<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">data<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Title: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">title<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">, Author: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">author<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Output:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(1 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"Root is &lt;DOM Element: catalog at 0x1829286fbf0&gt;\nTitle: XML Developer's Guide, Author: Gambardella, Matthew\nTitle: Midnight Rain, Author: Ralls, Kim\nTitle: Maeve Ascendant, Author: Corets, Eva\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #E0DEF4\">Root <\/span><span style=\"color: #3E8FB0\">is<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">&lt;DOM<\/span><span style=\"color: #E0DEF4\"> Element<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> catalog at <\/span><span style=\"color: #3E8FB0\">0x<\/span><span style=\"color: #EA9A97\">1829286fbf0<\/span><span style=\"color: #3E8FB0\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">XML<\/span><span style=\"color: #E0DEF4\"> Developer<\/span><span style=\"color: #F6C177\">&#039;s Guide, Author: Gambardella, Matthew<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Midnight Rain<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Ralls<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Kim<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Maeve Ascendant<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Corets<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Eva<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>If you wish to print each book\u2019s author, genre, title, and price, you would need to use the <code>getAttribute()<\/code> function. To access all the elements under a tag, use the <code>getElementsByTagName()<\/code> method and provide the tag as input.\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"import xml.dom.minidom\nimport requests\nfrom bs4 import BeautifulSoup\n# Fetch and extract XML content from the URL\nurl = &quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.content, &quot;html.parser&quot;)\nxml_content = soup.find(&quot;pre&quot;).text\n# Parse the XML content\nxml_doc = xml.dom.minidom.parseString(xml_content)\n# Get all the book elements\nbooks = xml_doc.getElementsByTagName('book')\n# Loop through the books and extract the data\nfor book in books:\n    book_id = book.getAttribute('id')  # Access the 'id' attribute\n    author = book.getElementsByTagName('author')[0].childNodes[0].data.strip()\n    title = book.getElementsByTagName('title')[0].childNodes[0].data.strip()\n    genre = book.getElementsByTagName('genre')[0].childNodes[0].data.strip()\n    price = book.getElementsByTagName('price')[0].childNodes[0].data.strip()\n    publish_date = book.getElementsByTagName('publish_date')[0].childNodes[0].data.strip()\n    description = book.getElementsByTagName('description')[0].childNodes[0].data.strip()\n    # Print the extracted data\n    print(f&quot;ID: {book_id}&quot;)\n    print(f&quot;Author: {author}&quot;)\n    print(f&quot;Title: {title}&quot;)\n    print(f&quot;Genre: {genre}&quot;)\n    print(f&quot;Price: {price}&quot;)\n    print(f&quot;Publish Date: {publish_date}&quot;)\n    print(f&quot;Description: {description}&quot;)\n    print()\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> xml<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">dom<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">minidom<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> requests<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">from<\/span><span style=\"color: #E0DEF4\"> bs4 <\/span><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Fetch and extract XML content from the URL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">url <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">response <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> requests<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">get<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">url<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">soup <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">response<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">content<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;html.parser&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_content <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> soup<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;pre&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Parse the XML content<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_doc <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> xml<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">dom<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">minidom<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">parseString<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">xml_content<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Get all the book elements<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">books <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> xml_doc<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getElementsByTagName<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&#039;book&#039;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Loop through the books and extract the data<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">for<\/span><span style=\"color: #E0DEF4\"> book <\/span><span style=\"color: #3E8FB0\">in<\/span><span style=\"color: #E0DEF4\"> books<\/span><span style=\"color: #908CAA\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    book_id <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getAttribute<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&#039;id&#039;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\">  <\/span><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Access the &#039;id&#039; attribute<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    author <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getElementsByTagName<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&#039;author&#039;<\/span><span style=\"color: #908CAA\">)[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">childNodes<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">data<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    title <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getElementsByTagName<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&#039;title&#039;<\/span><span style=\"color: #908CAA\">)[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">childNodes<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">data<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    genre <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getElementsByTagName<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&#039;genre&#039;<\/span><span style=\"color: #908CAA\">)[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">childNodes<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">data<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    price <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getElementsByTagName<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&#039;price&#039;<\/span><span style=\"color: #908CAA\">)[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">childNodes<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">data<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    publish_date <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getElementsByTagName<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&#039;publish_date&#039;<\/span><span style=\"color: #908CAA\">)[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">childNodes<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">data<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    description <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">getElementsByTagName<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&#039;description&#039;<\/span><span style=\"color: #908CAA\">)[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">childNodes<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #908CAA\">].<\/span><span style=\"color: #E0DEF4\">data<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Print the extracted data<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;ID: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">book_id<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Author: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">author<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Title: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">title<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Genre: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">genre<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Price: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">price<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Publish Date: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">publish_date<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Description: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">description<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Output:&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"ID: bk101\nAuthor: Gambardella, Matthew\nTitle: XML Developer's Guide\nGenre: Computer\nPrice: 44.95\nPublish Date: 2000-10-01\nDescription: An in-depth look at creating applications \n      with XML.\nID: bk102\nAuthor: Ralls, Kim\nTitle: Midnight Rain\nGenre: Fantasy\nPrice: 5.95\nPublish Date: 2000-12-16\nDescription: A former architect battles corporate zombies, \n      an evil sorceress, and her own childhood to become queen \n      of the world.\nID: bk103\nAuthor: Corets, Eva\nTitle: Maeve Ascendant\nGenre: Fantasy\nPrice: 5.95\nPublish Date: 2000-11-17\nDescription: After the collapse of a nanotechnology \n      society in England, the young survivors lay the \n      foundation for a new society.\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">ID<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> bk101<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Gambardella<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Matthew<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">XML<\/span><span style=\"color: #E0DEF4\"> Developer<\/span><span style=\"color: #F6C177\">&#039;s Guide<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Genre<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Computer<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Price<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">44.95<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Publish Date<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">2000<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">10<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">0<\/span><span style=\"color: #EB6F92\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Description<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> An <\/span><span style=\"color: #3E8FB0\">in-<\/span><span style=\"color: #E0DEF4\">depth look at creating applications <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      <\/span><span style=\"color: #3E8FB0\">with<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">XML<\/span><span style=\"color: #908CAA\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">ID<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> bk102<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Ralls<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Kim<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Midnight Rain<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Genre<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Fantasy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Price<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">5.95<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Publish Date<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">2000<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">12<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">16<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Description<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> A former architect battles corporate zombies<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      an evil sorceress<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">and<\/span><span style=\"color: #E0DEF4\"> her own childhood to become queen <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      of the world<\/span><span style=\"color: #908CAA\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">ID<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> bk103<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Corets<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Eva<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Maeve Ascendant<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Genre<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Fantasy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Price<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">5.95<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Publish Date<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">2000<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">11<\/span><span style=\"color: #3E8FB0\">-<\/span><span style=\"color: #EA9A97\">17<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Description<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> After the collapse of a nanotechnology <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      society <\/span><span style=\"color: #3E8FB0\">in<\/span><span style=\"color: #E0DEF4\"> England<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> the young survivors lay the <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      foundation <\/span><span style=\"color: #3E8FB0\">for<\/span><span style=\"color: #E0DEF4\"> a new society<\/span><span style=\"color: #908CAA\">.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:12px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">SAX Parser<\/h3>\n\n\n\n<p>SAX is another way you could parse XML in Python. It is a step above miniDOM as it can read the document sequentially. It does not need to load the entire tree into its memory which allows you to discard items and save memory space and resources. To set up a SAX parser, you would need to create a SAX parser object and register callback functions for the different events that you want to handle. This can be done by defining a custom BooksHandler class by sub-classing SAX\u2019s ContentHandler.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"import xml.sax\nimport requests\nfrom bs4 import BeautifulSoup\n# Fetch and extract XML content from the URL\nurl = &quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.content, &quot;html.parser&quot;)\nxml_content = soup.find(&quot;pre&quot;).text\n# Define a custom SAX ContentHandler\nclass BookstoreHandler(xml.sax.ContentHandler):\n    def __init__(self):\n        self.current_element = &quot;&quot;\n        self.current_book = {}\n        self.books = []\n        self.buffer = &quot;&quot;\n    def startElement(self, name, attrs):\n        self.current_element = name\n        if name == &quot;book&quot;:\n            self.current_book = {&quot;id&quot;: attrs.get(&quot;id&quot;, &quot;N\/A&quot;)}\n    def characters(self, content):\n        self.buffer += content.strip()\n    def endElement(self, name):\n        if name in [&quot;title&quot;, &quot;author&quot;, &quot;price&quot;, &quot;description&quot;]:\n            self.current_book[name] = self.buffer\n        if name == &quot;book&quot;:\n            self.books.append(self.current_book)\n        self.buffer = &quot;&quot;  # Reset buffer after each element\n# Parse the XML content\nparser = xml.sax.make_parser()\nhandler = BookstoreHandler()\nxml.sax.parseString(xml_content, handler)\n# Print parsed books\nfor book in handler.books:\n    print(book)\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> xml<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">sax<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> requests<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">from<\/span><span style=\"color: #E0DEF4\"> bs4 <\/span><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Fetch and extract XML content from the URL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">url <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">response <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> requests<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">get<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">url<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">soup <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">response<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">content<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;html.parser&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_content <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> soup<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;pre&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Define a custom SAX ContentHandler<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">class<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #9CCFD8\">BookstoreHandler<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #C4A7E7;font-style: italic\">xml<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #C4A7E7;font-style: italic\">sax<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #C4A7E7;font-style: italic\">ContentHandler<\/span><span style=\"color: #908CAA\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #3E8FB0\">def<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92;font-style: italic\">__init__<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #C4A7E7;font-style: italic\">self<\/span><span style=\"color: #908CAA\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">current_element <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">current_book <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">{}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">books <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">[]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">buffer <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #3E8FB0\">def<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">startElement<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #C4A7E7;font-style: italic\">self<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7;font-style: italic\">name<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7;font-style: italic\">attrs<\/span><span style=\"color: #908CAA\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">current_element <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> name <\/span><span style=\"color: #3E8FB0\">==<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;book&quot;<\/span><span style=\"color: #908CAA\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">current_book <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #F6C177\">&quot;id&quot;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> attrs<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">get<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;id&quot;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;N\/A&quot;<\/span><span style=\"color: #908CAA\">)}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #3E8FB0\">def<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">characters<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #C4A7E7;font-style: italic\">self<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7;font-style: italic\">content<\/span><span style=\"color: #908CAA\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">buffer <\/span><span style=\"color: #3E8FB0\">+=<\/span><span style=\"color: #E0DEF4\"> content<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">strip<\/span><span style=\"color: #908CAA\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #3E8FB0\">def<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">endElement<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #C4A7E7;font-style: italic\">self<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7;font-style: italic\">name<\/span><span style=\"color: #908CAA\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> name <\/span><span style=\"color: #3E8FB0\">in<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #F6C177\">&quot;title&quot;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;author&quot;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;price&quot;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;description&quot;<\/span><span style=\"color: #908CAA\">]:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">current_book<\/span><span style=\"color: #908CAA\">[<\/span><span style=\"color: #E0DEF4\">name<\/span><span style=\"color: #908CAA\">]<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">buffer<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> name <\/span><span style=\"color: #3E8FB0\">==<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;book&quot;<\/span><span style=\"color: #908CAA\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">books<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">append<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">current_book<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #E0DEF4;font-style: italic\">self<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">buffer <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;&quot;<\/span><span style=\"color: #E0DEF4\">  <\/span><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Reset buffer after each element<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Parse the XML content<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">parser <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> xml<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">sax<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">make_parser<\/span><span style=\"color: #908CAA\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">handler <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> BookstoreHandler<\/span><span style=\"color: #908CAA\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">sax<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">parseString<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">xml_content<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> handler<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Print parsed books<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">for<\/span><span style=\"color: #E0DEF4\"> book <\/span><span style=\"color: #3E8FB0\">in<\/span><span style=\"color: #E0DEF4\"> handler<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">books<\/span><span style=\"color: #908CAA\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">book<\/span><span style=\"color: #908CAA\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Output:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(1 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"{'id': 'bk101', 'author': 'Gambardella, Matthew', 'title': &quot;XML Developer's Guide&quot;, 'price': '44.95', 'description': 'An in-depth look at creating applicationswith XML.'}\n{'id': 'bk102', 'author': 'Ralls, Kim', 'title': 'Midnight Rain', 'price': '5.95', 'description': 'A former architect battles corporate zombies,an evil sorceress, and her own childhood to become queenof the world.'}\n{'id': 'bk103', 'author': 'Corets, Eva', 'title': 'Maeve Ascendant', 'price': '5.95', 'description': 'After the collapse of a nanotechnologysociety in England, the young survivors lay thefoundation for a new society.'}\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #908CAA\">{<\/span><span style=\"color: #F6C177\">&#039;id&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;bk101&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;author&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;Gambardella, Matthew&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;title&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;XML Developer&#039;s Guide&quot;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;price&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;44.95&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;description&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;An in-depth look at creating applicationswith XML.&#039;<\/span><span style=\"color: #908CAA\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA\">{<\/span><span style=\"color: #F6C177\">&#039;id&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;bk102&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;author&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;Ralls, Kim&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;title&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;Midnight Rain&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;price&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;5.95&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;description&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;A former architect battles corporate zombies,an evil sorceress, and her own childhood to become queenof the world.&#039;<\/span><span style=\"color: #908CAA\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA\">{<\/span><span style=\"color: #F6C177\">&#039;id&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;bk103&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;author&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;Corets, Eva&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;title&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;Maeve Ascendant&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;price&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;5.95&#039;<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;description&#039;<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&#039;After the collapse of a nanotechnologysociety in England, the young survivors lay thefoundation for a new society.&#039;<\/span><span style=\"color: #908CAA\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:12px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">BeautifulSoup and lmxl<\/h3>\n\n\n\n<p>BeautifulSoup, one of the most popular <a href=\"https:\/\/proxidize.com\/blog\/python-libraries-for-web-scraping\/\" target=\"_blank\" data-type=\"blog\" data-id=\"64448\" rel=\"noreferrer noopener\">Python libraries for web scraping<\/a>, is typically used for parsing HTML. However, it can also handle XML. Using BeautifulSoup provides a more user-friendly interface to traverse, search, and modify XML documents. It is ideal for quickly extracting specific elements without requiring deep knowledge of XML\u2019s parsing libraries. BS4 includes a built-in XML parser so it does not need any additional dependencies to parse XML in Python. If you need a faster parse, you can introduce lxml to help boost performance for larger XML files.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"from bs4 import BeautifulSoup\nimport requests\n# Fetch and extract XML content from the URL\nurl = &quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.content, &quot;html.parser&quot;)\nxml_content = soup.find(&quot;pre&quot;).text\n# Parse the XML content using BeautifulSoup\nsoup = BeautifulSoup(xml_content, &quot;lxml-xml&quot;)\n# Example: Find and print all book titles and authors\nfor book in soup.find_all(&quot;book&quot;):\n    title = book.find(&quot;title&quot;).text if book.find(&quot;title&quot;) else &quot;N\/A&quot;\n    author = book.find(&quot;author&quot;).text if book.find(&quot;author&quot;) else &quot;N\/A&quot;\n    print(f&quot;Title: {title}, Author: {author}&quot;)\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">from<\/span><span style=\"color: #E0DEF4\"> bs4 <\/span><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> requests<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Fetch and extract XML content from the URL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">url <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">response <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> requests<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">get<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">url<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">soup <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">response<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">content<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;html.parser&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_content <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> soup<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;pre&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Parse the XML content using BeautifulSoup<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">soup <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">xml_content<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;lxml-xml&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Example: Find and print all book titles and authors<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">for<\/span><span style=\"color: #E0DEF4\"> book <\/span><span style=\"color: #3E8FB0\">in<\/span><span style=\"color: #E0DEF4\"> soup<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find_all<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;book&quot;<\/span><span style=\"color: #908CAA\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    title <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;title&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;title&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">else<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;N\/A&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    author <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;author&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;author&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">else<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;N\/A&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Title: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">title<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">, Author: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">author<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Output:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(1 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"Title: XML Developer's Guide, Author: Gambardella, Matthew\nTitle: Midnight Rain, Author: Ralls, Kim\nTitle: Maeve Ascendant, Author: Corets, Eva\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">XML<\/span><span style=\"color: #E0DEF4\"> Developer<\/span><span style=\"color: #F6C177\">&#039;s Guide, Author: Gambardella, Matthew<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Midnight Rain<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Ralls<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Kim<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Maeve Ascendant<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Corets<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Eva<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Untangle<\/h3>\n\n\n\n<p>Untangle is a lightweight library used to parse XML in Python. While traditional parsers need to navigate through hierarchical structures, untangle allows you to access XML elements and attributes as Python objects. Untangle can help convert XML documents into Python dictionaries so the elements in the document can be represented as dictionary keys and their attributes and text content can be stored as corresponding values. Untangle does need to be installed into your IDE so you would need to enter <code>pip install untangle<\/code> into your terminal before you do anything else.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(2 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"import untangle\nimport requests\nfrom bs4 import BeautifulSoup\n# Fetch and extract XML content from the URL\nurl = &quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;\nresponse = requests.get(url)\nsoup = BeautifulSoup(response.content, &quot;html.parser&quot;)\nxml_content = soup.find(&quot;pre&quot;).text\n# Parse the XML content with untangle\nxml_obj = untangle.parse(xml_content)\n# Example: Print all book titles and authors\nfor book in xml_obj.catalog.book:\n    title = book.title.cdata if hasattr(book, &quot;title&quot;) else &quot;N\/A&quot;\n    author = book.author.cdata if hasattr(book, &quot;author&quot;) else &quot;N\/A&quot;\n    print(f&quot;Title: {title}, Author: {author}&quot;)\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> untangle<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> requests<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">from<\/span><span style=\"color: #E0DEF4\"> bs4 <\/span><span style=\"color: #3E8FB0\">import<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Fetch and extract XML content from the URL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">url <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;https:\/\/learn.microsoft.com\/en-us\/previous-versions\/windows\/desktop\/ms762271(v=vs.85)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">response <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> requests<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">get<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">url<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">soup <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> BeautifulSoup<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">response<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">content<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;html.parser&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_content <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> soup<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">find<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #F6C177\">&quot;pre&quot;<\/span><span style=\"color: #908CAA\">).<\/span><span style=\"color: #E0DEF4\">text<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Parse the XML content with untangle<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">xml_obj <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> untangle<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">parse<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">xml_content<\/span><span style=\"color: #908CAA\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #908CAA;font-style: italic\">#<\/span><span style=\"color: #6E6A86;font-style: italic\"> Example: Print all book titles and authors<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">for<\/span><span style=\"color: #E0DEF4\"> book <\/span><span style=\"color: #3E8FB0\">in<\/span><span style=\"color: #E0DEF4\"> xml_obj<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">catalog<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">book<\/span><span style=\"color: #908CAA\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    title <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">title<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">cdata <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92;font-style: italic\">hasattr<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">book<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;title&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">else<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;N\/A&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    author <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> book<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">author<\/span><span style=\"color: #908CAA\">.<\/span><span style=\"color: #E0DEF4\">cdata <\/span><span style=\"color: #3E8FB0\">if<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EB6F92;font-style: italic\">hasattr<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #E0DEF4\">book<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;author&quot;<\/span><span style=\"color: #908CAA\">)<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">else<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;N\/A&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #EB6F92;font-style: italic\">print<\/span><span style=\"color: #908CAA\">(<\/span><span style=\"color: #3E8FB0\">f<\/span><span style=\"color: #F6C177\">&quot;Title: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">title<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">, Author: <\/span><span style=\"color: #3E8FB0\">{<\/span><span style=\"color: #E0DEF4\">author<\/span><span style=\"color: #3E8FB0\">}<\/span><span style=\"color: #F6C177\">&quot;<\/span><span style=\"color: #908CAA\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Output:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.75rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#e0def4;--cbp-line-number-width:calc(1 * 0.6 * .75rem);line-height:1.25rem;--cbp-tab-width:2\"><span role=\"button\" data-code=\"Title: XML Developer's Guide, Author: Gambardella, Matthew\nTitle: Midnight Rain, Author: Ralls, Kim\nTitle: Maeve Ascendant, Author: Corets, Eva\" style=\"color:#232136;background-color:#e0def4\" aria-label=\"Copy\" data-copied-text=\"Copied!\" data-has-text-button=\"textSimple\" data-inside-header-type=\"none\" aria-live=\"polite\" class=\"code-block-pro-copy-button\"><span class=\"cbp-btn-text\">Copy<\/span><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\"><code><span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">XML<\/span><span style=\"color: #E0DEF4\"> Developer<\/span><span style=\"color: #F6C177\">&#039;s Guide, Author: Gambardella, Matthew<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Midnight Rain<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Ralls<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Kim<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">Title<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Maeve Ascendant<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Author<\/span><span style=\"color: #908CAA\">:<\/span><span style=\"color: #E0DEF4\"> Corets<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #E0DEF4\"> Eva<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized centered\"><img loading=\"lazy\" decoding=\"async\" width=\"1010\" height=\"569\" src=\"https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/tips-and-tricks-2.jpg\" alt=\"Image of a man thinking surrounded by gears with a text above reading &quot;Tips and Tricks to Parse XML in Python&quot;\" class=\"wp-image-61466\" style=\"object-fit:cover\" srcset=\"https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/tips-and-tricks-2.jpg 1010w, https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/tips-and-tricks-2-300x169.jpg 300w, https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/tips-and-tricks-2-768x433.jpg 768w, https:\/\/proxidize.com\/wp-content\/uploads\/2024\/12\/tips-and-tricks-2-600x338.jpg 600w\" sizes=\"(max-width: 1010px) 100vw, 1010px\" \/><\/figure>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Tips and Tricks to Parse XML in Python<\/h2>\n\n\n\n<p>We have explained and presented five different ways to parse XML using Python. This section will provide insight into when one parsing library will be better than the other as well as give some helpful tips and tricks to parse XML in Python.<\/p>\n\n\n\n<p>Most of the time, choosing between the different parsers depends on the size of the XML file you are working with. If you are working with a small to medium-sized XML file, Element Tree would suffice due to its great speeds and ease of use. MiniDOM is useful for smaller files as well, especially when working with DOM-like structures. For context, the XML file we have been experimenting with throughout this article (Books.XML) is only 5KB so using Element Tree for something of the same size is a great choice.<\/p>\n\n\n\n<p>For a larger XML file, typically something bigger than a gigabyte, BS4 and lxml would be the better choices as they are specifically efficient for parsing large documents and provide some additional functionality like XPath support. For extremely large files or streaming files, SAX is a perfect option because of how it processes data incrementally and reduces memory usage. If you are looking for the most simple and Python-like option, Untangle is the best choice.&nbsp;<\/p>\n\n\n\n<p>One of the issues that pop up when parsing or even web scraping is suffering from an <a href=\"https:\/\/proxidize.com\/use-cases\/bypass-ip-ban\/\" target=\"_blank\" rel=\"noreferrer noopener\">IP ban<\/a> due to multiple requests being made due to exceeding rate limits. A useful tool to bypass this when deciding to parse XML in Python is a proxy. While it is not entirely necessary to use when parsing a file you have in your documents, it comes in handy when parsing an XML document through a URL as we have been doing. If you are retrieving XML data from a remote server, you can route the request through a <a href=\"https:\/\/proxidize.com\/proxy-server\/mobile-proxy\/\" target=\"_blank\" rel=\"noreferrer noopener\">mobile proxy<\/a> to hide your IP and avoid rate limits.\u00a0<\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion&nbsp;<\/h2>\n\n\n\n<p>Choosing to parse XML in Python allows you to handle structured data for many tasks including web scraping and data analysis. With the five different approaches we presented for you in this article, you should have a comprehensive understanding of the tools available, when they could be used, and why. If you are working with small files, large datasets, or just want to make things easier for yourself, there is a parser available that will suit your needs.<\/p>\n","protected":false},"author":2627,"featured_media":75720,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","categories":[266],"tags":[],"class_list":["post-61366","blog","type-blog","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-tutorials-and-programming"],"acf":[],"_links":{"self":[{"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/blog\/61366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/users\/2627"}],"replies":[{"embeddable":true,"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/comments?post=61366"}],"version-history":[{"count":8,"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/blog\/61366\/revisions"}],"predecessor-version":[{"id":87248,"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/blog\/61366\/revisions\/87248"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/media\/75720"}],"wp:attachment":[{"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/media?parent=61366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/categories?post=61366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/proxidize.com\/wp-json\/wp\/v2\/tags?post=61366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}