package mypack;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.xpath.XPath;
public class test {
public static void main(String[] args) {
File f=new File("test.xml");
SAXBuilder saxb=new SAXBuilder();
try {
Document xmldoc=saxb.build(f);
XPath xpath=XPath.newInstance("//LINE[编号='001']");//创建一个查询编号为001的LINE元素的XPATH。
List nodes=xpath.selectNodes(xmldoc);//进行查询
System.out.println("返回记录数:"+nodes.size());
for(int i=0;i
System.out.print(i+" / ");
System.out.println(((Element)nodes.get(i)).getChildText("名称"));//返回该LINE的名称的文本值。
}
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//打印xml文档
private void parseElement(Element root)
{
//System.out.print(root.getNamespaceURI());
System.out.print("
System.out.print(root.getNodeName());
//System.out.print(root.getPrefix());
//System.out.print(":");
//System.out.print(root.getLocalName());
NamedNodeMap nnm = root.getAttributes();
for(int i = 0; i < nnm.getLength(); i++)
{
Attr attr = (Attr)nnm.item(i);
System.out.print(" ");
System.out.print(attr.getName());
System.out.print("=\"");
System.out.print(attr.getValue());
System.out.print("\"");
}
System.out.print(">");
NodeList list = root.getChildNodes();
for(int i = 0; i < list.getLength(); i++)
{
Node node = list.item(i);
if(node instanceof Element)
{
Element e = (Element)node;
parseElement(e);
}
else if(node instanceof Text)
{
Text t = (Text)node;
System.out.print(t.getNodeValue());
}
}
System.out.print("");
System.out.print(root.getNodeName());
System.out.print(">");
}
private void parseRootName()
{
Element root = doc.getDocumentElement();
System.out.println(root.getNodeName());
}
//工厂
private void getDocument()
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder db = factory.newDocumentBuilder();
doc = db.parse(new File(fileName));
}
catch(Exception ex)
{
ex.printStackTrace();
System.exit(1);
}
}
}
}