📜  门| GATE-CS-2016(套装1)|第 64 题(1)

📅  最后修改于: 2023-12-03 15:12:43.305000             🧑  作者: Mango

题目信息:

门| GATE-CS-2016(套装1)|第 64 题

介绍:

本题是GATE考试中的一道题目,属于计算机科学与工程领域。该题要求程序员建立一个XML文档,并对其进行查询操作。此题涉及到XML文档的构建、解析与操作,需具备相关知识。

Markdown格式:

门| GATE-CS-2016(套装1)|第 64 题

介绍:

本题是GATE考试中的一道题目,属于计算机科学与工程领域。该题要求程序员建立一个XML文档,并对其进行查询操作。此题涉及到XML文档的构建、解析与操作,需要程序员具备相关知识。

题目内容:

假设有一个XML文件夹”test.xml”,其内容如下所示:

<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications 
      with XML.</description>
   </book>
   <book id="bk102">
      <author>Ralls, Kim</author>
      <title>Midnight Rain</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-12-16</publish_date>
      <description>A former architect battles corporate zombies, 
      an evil sorceress, and her own childhood to become queen 
      of the world.</description>
   </book>
</catalog>

请编写一段Python程序,实现以下功能:

  1. 读取”test.xml”文件
  2. 查询XML中 “book id="bk102"” 的图书信息

代码实现:

import xml.etree.ElementTree as ET

# 解析xml文件
tree = ET.parse('test.xml')
root = tree.getroot()

# 查询信息
for book in root.iter('book'):
    if book.get('id')=='bk102':
        print('Book Information:')
        print('ID: ', book.get('id'))
        print('Author: ', book.find('author').text)
        print('Title: ', book.find('title').text)
        print('Genre: ', book.find('genre').text)
        print('Price: ', book.find('price').text)
        print('Publish Date: ', book.find('publish_date').text)
        print('Description: ', book.find('description').text)

代码实现说明:

  1. 首先导入xml.etree.ElementTree模块
  2. 使用ET.parse()方法解析xml文件,返回xml.etree.ElementTree.Element对象
  3. 使用getroot()方法获取xml文件的根元素
  4. 使用iter()方法遍历根元素下的所有book节点,判断其“id”属性是否为“bk102”,若是则输出相关信息。其中find()方法用于在指定的节点下查询子节点的文本内容,get()方法用于获取节点的属性值。

注意:本题代码片段中的查询方式仅适用于当前XML文件夹的结构,在其他格式下可能无法正确实现查询功能。