在 Java 中解析 XML 格式的字符串并提取特定标签的属性值,可以使用多种方法,例如 DOM 解析器、SAX 解析器或 StAX 解析器。这里我们使用 DOM 解析器来实现这个功能,因为它相对简单且适用于较小的 XML 文档。
以下是一个示例代码,展示如何解析 XML 格式的字符串并提取 <part> 标签中的 JSTH 属性值。如果 <part> 标签没有 JSTH 属性,则输出为空字符串或其他默认值。
1. 添加依赖
确保项目中包含 Java XML 解析相关的依赖。如果使用的是 Maven 项目,可以在 pom.xml 中添加以下依赖:
<dependencies>
    <!-- Java XML Parsers -->
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.1</version>
    </dependency>
</dependencies>2. 编写解析代码
创建一个 Java 类来解析 XML 并提取所需的属性值。
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class XmlParser {
    public static void main(String[] args) {
        String xmlString = "<root><part JSTH=\"value1\"></part><part></part><part JSTH=\"value3\"></part></root>";
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(new InputSource(new StringReader(xmlString)));
            // 获取所有的 <part> 标签
            NodeList partNodes = document.getElementsByTagName("part");
            for (int i = 0; i < partNodes.getLength(); i++) {
                Node partNode = partNodes.item(i);
                if (partNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element partElement = (Element) partNode;
                    String jsthValue = partElement.getAttribute("JSTH");
                    System.out.println("JSTH attribute value: " + (jsthValue.isEmpty() ? "null" : jsthValue));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}3. 解释代码
- 导入必要的包:
 
org.w3c.dom.*:用于处理 XML 文档的 DOM 模型。javax.xml.parsers.*:用于创建 XML 解析器。java.io.*:用于处理输入输出流。
- 创建 
DocumentBuilderFactory和DocumentBuilder对象: 
DocumentBuilderFactory用于创建DocumentBuilder对象。DocumentBuilder用于解析 XML 文档。
- 解析 XML 字符串:
 
- 使用 
builder.parse(new InputSource(new StringReader(xmlString)))方法将 XML 字符串解析为Document对象。 
- 获取所有的 
<part>标签: 
- 使用 
document.getElementsByTagName("part")方法获取所有的<part>标签节点。 
- 遍历 
<part>节点: 
- 使用 
for循环遍历每一个<part>节点。 - 检查节点类型是否为 
Element。 - 使用 
partElement.getAttribute("JSTH")方法获取JSTH属性值。 - 如果 
JSTH属性值为空字符串,则输出 "null",否则输出属性值。 
4. 运行代码
编译并运行上述代码,将看到输出结果:
JSTH attribute value: value1
JSTH attribute value: null
JSTH attribute value: value3这样,就可以成功解析 XML 字符串并提取 <part> 标签中的 JSTH 属性值。如果 <part> 标签没有 JSTH 属性,输出将为 "null"。










