咨询XML多数组标签读取方法及首个TITLE属性引用方式
XML读取问题解答
一、引用第一个TITLE属性
你提供的XML里,第一个TITLE是根节点<PLAYER>下直接子节点<TRACK>的TITLE属性,以下是几种常用语言的实现方式:
Python(使用xml.etree.ElementTree)
import xml.etree.ElementTree as ET # 解析XML内容(假设xml_content是你的XML字符串) tree = ET.ElementTree(ET.fromstring(xml_content)) root = tree.getroot() # 获取第一个TRACK节点的TITLE属性 first_title = root.find('TRACK').attrib['TITLE'] print(first_title) # 输出: While We're In Love
C#(使用XDocument)
using System.Xml.Linq; // 加载XML内容 XDocument doc = XDocument.Parse(xmlContent); // 获取第一个TITLE属性 string firstTitle = doc.Root.Element("TRACK").Attribute("TITLE").Value; Console.WriteLine(firstTitle); // 输出: While We're In Love
Java(使用DOM解析)
import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.ByteArrayInputStream; public class XmlReader { public static void main(String[] args) throws Exception { String xmlContent = "你的XML字符串"; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new ByteArrayInputStream(xmlContent.getBytes())); // 获取第一个TRACK节点的TITLE属性 Element trackElement = (Element) doc.getElementsByTagName("TRACK").item(0); String firstTitle = trackElement.getAttribute("TITLE"); System.out.println(firstTitle); // 输出: While We're In Love } }
二、读取XML中的多个同类型节点(多数组场景)
如果需要读取所有<TRACK>节点(包括<PREVTRACK>下的),可以通过递归查找或遍历所有匹配节点实现:
Python示例
# 递归查找所有层级的TRACK节点 all_tracks = root.findall('.//TRACK') # 遍历输出每个TRACK的TITLE属性 for track in all_tracks: print(track.attrib['TITLE']) # 输出: # While We're In Love # Onderweg
C#示例
// 获取所有层级的TRACK节点 var allTracks = doc.Descendants("TRACK"); foreach (var track in allTracks) { Console.WriteLine(track.Attribute("TITLE").Value); } // 输出同上
Java示例
// 获取所有TRACK节点(自动遍历所有层级) NodeList trackNodes = doc.getElementsByTagName("TRACK"); for (int i = 0; i < trackNodes.getLength(); i++) { Element trackElement = (Element) trackNodes.item(i); System.out.println(trackElement.getAttribute("TITLE")); } // 输出同上
内容的提问来源于stack exchange,提问作者PPFU
相关产品推荐
相关产品推荐

