使用Python和JavaScript可提取XML节点属性。1. Python通过xml.etree.ElementTree解析,用get()获取id、category等属性值;2. JavaScript利用DOMParser和getElementsByTagName遍历book节点,通过getAttribute提取属性。

在处理XML数据时,提取节点的属性是常见的操作。属性通常以键值对的形式存在于标签内,例如
使用Python的xml.etree.ElementTree
Python内置的ElementTree模块可以方便地解析和操作XML文件。
示例XML内容:
提取属性代码:
import xml.etree.ElementTree as ETdata = '''
root = ET.fromstring(data)
for book in root.findall('book'):
print("ID:", book.get('id'))
print("Category:", book.get('category'))
print("Author:", book.get('author'))
print("Title:", book.text)
print("---")
说明:
- 使用 findall() 查找所有指定标签。
- 使用 get('属性名') 获取对应属性值,如果属性不存在返回 None。
使用JavaScript的DOM解析
在浏览器或Node.js环境中,可通过DOM API提取XML属性。
示例代码:
const parser = new DOMParser();const xmlString = `
const xmlDoc = parser.parseFromString(xmlString, "text/xml");
const books = xmlDoc.getElementsByTagName("book");
for (let i = 0; i const book = books[i];
console.log("ID:", book.getAttribute("id"));
console.log("Category:", book.getAttribute("category"));
console.log("Title:", book.textContent);
console.log("---");
}
说明:
- 使用 DOMParser 将字符串转为XML文档对象。
- 调用 getAttribute() 方法获取属性值。
使用XPath表达式提取属性
XPath是一种强大的查询语言,适用于复杂结构的XML。
Python中结合lxml使用XPath:
from lxml import etreeroot = etree.fromstring(data)
for book in root.xpath('//book'): # 找到所有book节点
print("ID:", book.get('id'))
print("Category:", book.get('category'))
print("Title:", book.text)
也可直接提取属性集合:
ids = root.xpath('//book/@id')print(ids) # 输出: ['101', '102']
说明:
- //book/@id 表示选取所有book节点的id属性。
- lxml支持完整的XPath语法,适合处理深层嵌套结构。
基本上就这些常见方式。根据使用的语言和环境选择合适的方法即可。关键是理解属性是节点的一部分,需要用特定方法访问,而不是当作子节点处理。










