{"id":22604,"date":"2024-03-15T23:51:53","date_gmt":"2024-03-15T23:51:53","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/"},"modified":"2024-03-21T23:16:50","modified_gmt":"2024-03-21T23:16:50","slug":"how-to-use-xpath-to-parse-data-in-python","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/","title":{"rendered":"How to use XPath to parse data in Python?"},"content":{"rendered":"<p>In Python, you can use the etree module from the lxml library to parse data. Here is a simple example of parsing data using XPath.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">from<\/span> lxml <span class=\"hljs-keyword\">import<\/span> etree\r\n\r\n<span class=\"hljs-comment\"># \u521b\u5efa\u4e00\u4e2aXML\u6587\u6863\u5e76\u89e3\u6790<\/span>\r\nxml_data = <span class=\"hljs-string\">\"\"\"\r\n&lt;books&gt;\r\n    &lt;book&gt;\r\n        &lt;title&gt;Python Cookbook&lt;\/title&gt;\r\n        &lt;author&gt;David Beazley&lt;\/author&gt;\r\n        &lt;year&gt;2013&lt;\/year&gt;\r\n    &lt;\/book&gt;\r\n    &lt;book&gt;\r\n        &lt;title&gt;Fluent Python&lt;\/title&gt;\r\n        &lt;author&gt;Luciano Ramalho&lt;\/author&gt;\r\n        &lt;year&gt;2015&lt;\/year&gt;\r\n    &lt;\/book&gt;\r\n&lt;\/books&gt;\r\n\"\"\"<\/span>\r\nroot = etree.fromstring(xml_data)\r\n\r\n<span class=\"hljs-comment\"># \u4f7f\u7528XPath\u9009\u62e9\u5143\u7d20<\/span>\r\ntitles = root.xpath(<span class=\"hljs-string\">\"\/\/title\/text()\"<\/span>)\r\nauthors = root.xpath(<span class=\"hljs-string\">\"\/\/author\/text()\"<\/span>)\r\nyears = root.xpath(<span class=\"hljs-string\">\"\/\/year\/text()\"<\/span>)\r\n\r\n<span class=\"hljs-comment\"># \u6253\u5370\u89e3\u6790\u7ed3\u679c<\/span>\r\n<span class=\"hljs-keyword\">for<\/span> title, author, year <span class=\"hljs-keyword\">in<\/span> <span class=\"hljs-built_in\">zip<\/span>(titles, authors, years):\r\n    <span class=\"hljs-built_in\">print<\/span>(<span class=\"hljs-string\">f\"Title: <span class=\"hljs-subst\">{title}<\/span>\"<\/span>)\r\n    <span class=\"hljs-built_in\">print<\/span>(<span class=\"hljs-string\">f\"Author: <span class=\"hljs-subst\">{author}<\/span>\"<\/span>)\r\n    <span class=\"hljs-built_in\">print<\/span>(<span class=\"hljs-string\">f\"Year: <span class=\"hljs-subst\">{year}<\/span>\"<\/span>)\r\n    <span class=\"hljs-built_in\">print<\/span>(<span class=\"hljs-string\">\"---\"<\/span>)\r\n<\/code><\/pre>\n<p>The output is as follows:<\/p>\n<pre class=\"post-pre\"><code>Title: Python Cookbook\r\nAuthor: David Beazley\r\nYear: 2013\r\n---\r\nTitle: Fluent Python\r\nAuthor: Luciano Ramalho\r\nYear: 2015\r\n---\r\n<\/code><\/pre>\n<p>In the example above, the XML string is parsed into an Element object using the etree.fromstring() method. Then, the xpath() method is used to select the corresponding elements using XPath expressions. Finally, the text property is used to retrieve the text content of the elements.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Python, you can use the etree module from the lxml library to parse data. Here is a simple example of parsing data using XPath. from lxml import etree # \u521b\u5efa\u4e00\u4e2aXML\u6587\u6863\u5e76\u89e3\u6790 xml_data = &#8220;&#8221;&#8221; &lt;books&gt; &lt;book&gt; &lt;title&gt;Python Cookbook&lt;\/title&gt; &lt;author&gt;David Beazley&lt;\/author&gt; &lt;year&gt;2013&lt;\/year&gt; &lt;\/book&gt; &lt;book&gt; &lt;title&gt;Fluent Python&lt;\/title&gt; &lt;author&gt;Luciano Ramalho&lt;\/author&gt; &lt;year&gt;2015&lt;\/year&gt; &lt;\/book&gt; &lt;\/books&gt; &#8220;&#8221;&#8221; root = etree.fromstring(xml_data) # [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-22604","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to use XPath to parse data in Python? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use XPath to parse data in Python?\" \/>\n<meta property=\"og:description\" content=\"In Python, you can use the etree module from the lxml library to parse data. Here is a simple example of parsing data using XPath. from lxml import etree # \u521b\u5efa\u4e00\u4e2aXML\u6587\u6863\u5e76\u89e3\u6790 xml_data = &quot;&quot;&quot; &lt;books&gt; &lt;book&gt; &lt;title&gt;Python Cookbook&lt;\/title&gt; &lt;author&gt;David Beazley&lt;\/author&gt; &lt;year&gt;2013&lt;\/year&gt; &lt;\/book&gt; &lt;book&gt; &lt;title&gt;Fluent Python&lt;\/title&gt; &lt;author&gt;Luciano Ramalho&lt;\/author&gt; &lt;year&gt;2015&lt;\/year&gt; &lt;\/book&gt; &lt;\/books&gt; &quot;&quot;&quot; root = etree.fromstring(xml_data) # [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T23:51:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T23:16:50+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"How to use XPath to parse data in Python?\",\"datePublished\":\"2024-03-15T23:51:53+00:00\",\"dateModified\":\"2024-03-21T23:16:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/\"},\"wordCount\":85,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/\",\"name\":\"How to use XPath to parse data in Python? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T23:51:53+00:00\",\"dateModified\":\"2024-03-21T23:16:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use XPath to parse data in Python?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to use XPath to parse data in Python? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/","og_locale":"en_US","og_type":"article","og_title":"How to use XPath to parse data in Python?","og_description":"In Python, you can use the etree module from the lxml library to parse data. Here is a simple example of parsing data using XPath. from lxml import etree # \u521b\u5efa\u4e00\u4e2aXML\u6587\u6863\u5e76\u89e3\u6790 xml_data = \"\"\" &lt;books&gt; &lt;book&gt; &lt;title&gt;Python Cookbook&lt;\/title&gt; &lt;author&gt;David Beazley&lt;\/author&gt; &lt;year&gt;2013&lt;\/year&gt; &lt;\/book&gt; &lt;book&gt; &lt;title&gt;Fluent Python&lt;\/title&gt; &lt;author&gt;Luciano Ramalho&lt;\/author&gt; &lt;year&gt;2015&lt;\/year&gt; &lt;\/book&gt; &lt;\/books&gt; \"\"\" root = etree.fromstring(xml_data) # [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T23:51:53+00:00","article_modified_time":"2024-03-21T23:16:50+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"How to use XPath to parse data in Python?","datePublished":"2024-03-15T23:51:53+00:00","dateModified":"2024-03-21T23:16:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/"},"wordCount":85,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/","name":"How to use XPath to parse data in Python? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T23:51:53+00:00","dateModified":"2024-03-21T23:16:50+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-xpath-to-parse-data-in-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use XPath to parse data in Python?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22604","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=22604"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22604\/revisions"}],"predecessor-version":[{"id":56534,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/22604\/revisions\/56534"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=22604"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=22604"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=22604"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}