Alt düğümleri, boşluklar için öğeler ve metin düğümlerinden oluşur. Nitelikler işlenmeden önce düğüm tipini kontrol etmek isteyeceksiniz. Ayrıca Java SE 5.
Örnek Bu örnek, bir DOM karşı bir XPath bir açıklamada bulunması gösterilmiştir 1
ile başlayan JDK/JRE mevcut javax.xml.xpath
API'leri kullanarak düşünebilirsiniz.
package forum11649396;
import java.io.StringReader;
import javax.xml.parsers.*;
import javax.xml.xpath.*;
import org.w3c.dom.*;
import org.xml.sax.InputSource;
public class Demo {
public static void main(String[] args) throws Exception {
String xml = "<?xml version='1.0' encoding='UTF-8'?><users><user id='0' firstname='John'/></users>";
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(new InputSource(new StringReader(xml)));
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
Element userElement = (Element) xpath.evaluate("https://stackoverflow.com/users/user", document, XPathConstants.NODE);
System.out.println(userElement.getAttribute("id"));
System.out.println(userElement.getAttribute("firstname"));
}
}
Örnek 2
Aşağıdaki örnek bir DOM düğümü almak için InputSource
karşı bir XPath bildiri yayınlaması gösterilmiştir. Bu, XML'i DOM'a kendiniz ayırmaktan kurtarır.
package forum11649396;
import java.io.StringReader;
import javax.xml.xpath.*;
import org.w3c.dom.*;
import org.xml.sax.InputSource;
public class Demo {
public static void main(String[] args) throws Exception {
String xml = "<?xml version='1.0' encoding='UTF-8'?><users><user id='0' firstname='John'/></users>";
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
InputSource inputSource = new InputSource(new StringReader(xml));
Element userElement = (Element) xpath.evaluate("https://stackoverflow.com/users/user", inputSource, XPathConstants.NODE);
System.out.println(userElement.getAttribute("id"));
System.out.println(userElement.getAttribute("firstname"));
}
}
Teşekkürler, yalnızca genel bir şekilde öğeleri filtrelemek için bir yol biliyor musunuz? –