1、import org.xml.sax.*;import org.w3c.dom.*;public class XPathTwo public static void main(String args) try XPathFactory xPathFactory=XPathFactory.newInstance(); XPath xPath=xPathFactory.newXPath(); InputSource source=new InputSource(example6_1.xml); String path=/学生列表/学生成绩60/姓名; NodeList nodelist= (Nod
2、eList)xPath.evaluate(path,source,XPathConstants.NODESET); int size=nodelist.getLength(); for(int k=0;k 李四民族傣族/雇员列表6.3 XPath路径表达式的结构例子3example6_3.xmlstudentListstudent xmlns:p1=Liaoning sex=男number2010111inputTime1992-01-01/numbername张三birthDay/birthDayscore611/studentstudent sex=女2010222李翠花1992-02-0
3、25222010333孙五1992-03-03433例子4XPathFour.javaimport java.io.*;import java.util.*;public class XPathFour Scanner reader=new Scanner(System.in); String fileName=example6_3.xml InputSource source=new InputSource(fileName); System.out.print(输入XPath表达式: String path=reader.nextLine();节点集中的节点个数:+size);节点的名字依
4、次为:第+(k+1)+个节点的名字:+name);例子5example6_5.xml列车时刻表列车 类别=特快 车厢数目=20节车厢列车号码152次始发时间09:12到达时间19:23始发站北京终到站上海/列车普快12节车厢168次10:21:36沈阳南京例子6Example6_6.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class Eample6_6 XPathWindow win=new XPathWindow(a.xmlclass XPathWindow extends JFram
5、e implements ActionListener XPathFactory xPathFactory; XPath xPath; InputSource source; JTextField inputXPath; JTextArea showResult; JButton button; public XPathWindow(String fileName) try xPathFactory=XPathFactory.newInstance(); xPath=xPathFactory.newXPath(); source=new InputSource(fileName); input
6、XPath=new JTextField(25); showResult=new JTextArea(); button=new JButton(确定 button.addActionListener(this); inputXPath.addActionListener(this); JPanel north=new JPanel(); north.add(new Label(XPath表达式:); north.add(inputXPath); north.add(button); add(north,BorderLayout.NORTH); add(new JScrollPane(show
7、Result),BorderLayout.CENTER); setBounds(10,10,900,300); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e) showResult.setText(null); String path=inputXPath.getText(); try showResult.append(+size+n节点的名字以及节点的值依次为:+name+, String value=node.getNo
8、deValue();个节点的值:+value+异常:+exp); 6.7 Java XPath API 例子7XPathSeven.javapublic class XPathSevenexample6_5.xml/列车时刻表/列车 Node node=(Node)xPath.evaluate(path,source,XPathConstants.NODE);例子8 XPathEight.java public class XPathEight/列车时刻表/列车/始发站 String stateName=(String)xPath.evaluate(path,source,XPathConst
9、ants.STRING);System.out.println(始发站标记包含的文本: System.out.print(stateName);例子9 example8_9.xml成绩表78李四80XPathNine.javapublic class XPathNineexample8_9.xml double sum=0;成绩表/学生 for(int i=1;i图书 ISBN=72349876名称美丽的假日作者/作者价格 29 出版时间 2009.05出版社 阳光出版社/图书12345678冬天的阳光 18 2010.05 冬冬出版社87654321春天的记忆 张小民 25 2010.10
10、春日出版社Application.javapublic class Application new BookConditionWindow();BookConditionWindow.javapublic class BookConditionWindow extends JFrame JTextField inputBookName,inputBookAuthor,inputBookISBN,inputPublish; Box baseBox ,boxV1,boxV2; BookConditionWindow() inputBookName=new JTextField(10); input
11、BookAuthor=new JTextField(10); inputBookISBN=new JTextField(10); inputPublish=new JTextField(10); boxV1=Box.createVerticalBox(); boxV1.add(new Label(图书名称中包含:作者姓名中包含:图书ISBN中包含出版社名称中包含: boxV2=Box.createVerticalBox(); boxV2.add(inputBookName); boxV2.add(inputBookAuthor); boxV2.add(inputBookISBN); boxV2
12、.add(inputPublish); baseBox=Box.createHorizontalBox(); baseBox.add(boxV1); baseBox.add(boxV2); JPanel west=new JPanel(); west.add(baseBox); west.add(button); add(west,BorderLayout.WEST); showResult=new JTextArea(10,10); showResult.setFont(new Font(宋体,Font.PLAIN,12); FindBookByXPath findBook; /负责使用XPath查询图书的对象 findBook= new FindBookByXPath(inputBookName,inputBookAuthor,inputBookISBN,inputPublish, showResult,book.xml button.addActionListener(findBook);FindBookByXPath.javaimport
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1