[code="java"]
public class TestXml {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true); // never forget this!
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("d://dd.xml");
XPathFactory pathFactory = XPathFactory.newInstance();
XPath xpath = pathFactory.newXPath();
XPathExpression pathExpression = xpath.compile("//Model/o:Column/a:Name/text()");
Object result = pathExpression.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
}
}
}
[/code]
dd.xml
[code="java"]
<?xml version="1.0" encoding="GB2312"?>
<?PowerDesigner AppLocale="UTF16" ID="{64EF704A-101D-4EF0-B2F3-F2586373698A}" Label="" Name="rank" Objects="203" Symbols="12"ID="{64EF704A-101D-4EF0-B2F3-F2586373698A}" Label="" Name="rank" Objects="203" Symbols="12" Target="ORACLE Version 10g" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML"version="12.0.0.1700"?>
627887B7-D8B5-4151-936A-15A527C092B1/a:ObjectID
排行控制表ID/a:Namerank_control_id/a:Code
1269244973/a:CreationDate
Administrator/a:Creator
1269259813/a:ModificationDate
Administrator/a:Modifier
排行控制表主键/a:Comment
NUMBER(19)/a:DataType
19/a:Length
1/a:Mandatory
/o:Column
[/code]
这样为什么不能读取?
但是下面这个不要命名空间的可以读取
[code="java"]
<?xml version="1.0" encoding="GB2312"?>
<?PowerDesigner AppLocale="UTF16" ID="{64EF704A-101D-4EF0-B2F3-F2586373698A}" Label="" Name="rank" Objects="203" Symbols="12"ID="{64EF704A-101D-4EF0-B2F3-F2586373698A}" Label="" Name="rank" Objects="203" Symbols="12" Target="ORACLE Version 10g" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML"version="12.0.0.1700"?>
627887B7-D8B5-4151-936A-15A527C092B1
排行控制表IDrank_control_id
1269244973
Administrator
1269259813
Administrator
排行控制表主键
NUMBER(19)
19
1
[/code]