Java by API/javax.xml.xpath/XPathConstants
XPathConstants.NODE
<source lang="java">
import java.io.FileReader; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Attr; import org.xml.sax.InputSource; public class GetNameAsAttr {
public static void main(String[] args) throws Exception { XPathFactory factory = XPathFactory.newInstance(); XPath xPath = factory.newXPath(); Attr result = (Attr) xPath.evaluate("/schedule/@name", new InputSource( new FileReader("tds.xml")), XPathConstants.NODE); System.out.println(result.getValue()); result.setValue("The Colbert Report"); }
}
</source>
XPathConstants.NODESET
<source lang="java">
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class MainClass {
public static void main(String[] args) throws ParserConfigurationException, XPathExpressionException, org.xml.sax.SAXException, java.io.IOException { String documentName = args[0]; String expression = args[1]; DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc = parser.parse(new java.io.File(documentName)); XPath xpath = XPathFactory.newInstance().newXPath(); System.out.println(xpath.evaluate(expression, doc)); NodeList nodes = (NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET); for (int i = 0, n = nodes.getLength(); i < n; i++) { Node node = nodes.item(i); System.out.println(node); } }
}
</source>
XPathConstants.NUMBER
<source lang="java">
import java.io.FileReader; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; import org.xml.sax.InputSource; public class GetSeriesId {
public static void main(String[] args) throws Exception { XPathFactory factory = XPathFactory.newInstance(); XPath xPath = factory.newXPath(); Double result = (Double) xPath.evaluate("/schedule/@seriesId", new InputSource(new FileReader( "tds.xml")), XPathConstants.NUMBER); System.out.println(result.intValue()); }
}
</source>