Java by API/javax.xml.xpath/XPathConstants
Версия от 17:43, 31 мая 2010; (обсуждение)
XPathConstants.NODE
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");
}
}
XPathConstants.NODESET
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);
}
}
}
XPathConstants.NUMBER
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());
}
}