共計 1710 個字符,預計需要花費 5 分鐘才能閱讀完成。
在 Java 中,可以使用以下方法來解析 XML 字符串:
- 使用 DOM 解析器:通過創(chuàng)建一個 DocumentBuilder 對象,可以將 XML 字符串解析為一個 Document 對象,然后可以使用 DOM API 來訪問和操作 XML 文檔中的元素和屬性。
String xmlString = "<root><element>value</element></root>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xmlString));
Document document = builder.parse(is);
Element root = document.getDocumentElement();
String elementValue = root.getElementsByTagName("element").item(0).getTextContent();
System.out.println(elementValue);
- 使用 SAX 解析器:SAX 解析器是基于事件的解析器,通過實現(xiàn) ContentHandler 接口可以處理 XML 文檔中的各種事件,如開始元素、結束元素、字符數(shù)據(jù)等。
String xmlString = "<root><element>value</element></root>";
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {boolean elementFlag = false;
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {if (qName.equals("element")) {elementFlag = true;
}
}
public void characters(char[] ch, int start, int length) throws SAXException {if (elementFlag) {System.out.println(new String(ch, start, length));
elementFlag = false;
}
}
};
parser.parse(new InputSource(new StringReader(xmlString)), handler);
- 使用 JAXB 解析器:JAXB 是 Java Architecture for XML Binding 的縮寫,可以將 XML 文檔映射為 Java 對象,并通過注解來指定映射規(guī)則。
@XmlRootElement
public class Root {@XmlElement
private String element;
public String getElement() {return element;
}
public void setElement(String element) {this.element = element;
}
}
JAXBContext context = JAXBContext.newInstance(Root.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Root root = (Root) unmarshaller.unmarshal(new StringReader(xmlString));
System.out.println(root.getElement());
以上是三種常用的 XML 解析方法,可以根據(jù)具體需求選擇適合的方法來解析 XML 字符串。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完