读书人

dom4j解析基于xml的文档获取属性有

发布时间: 2012-04-04 16:38:51 作者: rapoo

dom4j解析基于xml的文档——获取属性问题
dom4j解析基于xml的文档,给出如下一对元素:
<bpel:process name="CaculatorProcess"

targetNamespace="http://www.pku.edu.cn/bpel/sample"

suppressJoinFailure="yes"

xmlns:tns="http://www.pku.edu.cn/bpel/sample"

xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"

xmlns:ns1="http://add.example.ws" xmlns:ns2="http://sub.example.ws">
...
</bpel:process>
要获取元素<bpel:process>的属性,但实际只能获取前三个属性,即name, tartgetNamespace, suppressJoinFailure。而后四个属性则获取不到。
源代码如下:

Java code
public class testDom {    /**     * @param args     * @throws IOException      */    public static void testDom4() throws DocumentException, IOException{        SAXReader saxR = new SAXReader();        Document document = saxR.read("D:/source/CaculatorProcess.bpel");        Element root = document.getRootElement();            Iterator iter1 = root.attributeIterator();            for(;iter1.hasNext();){                Attribute attr = (Attribute)iter1.next();                System.out.println(attr.getName());            }            }    public static void main(String[] args) throws DocumentException, IOException, WSDLException {        // TODO Auto-generated method stub        testDom4();    }    }

若将后四个属性的前半部分(如"xmls:")去掉,则是可以解析出后半部分的(如"tns")。
请问在不改动源文档的情况下,如何才能获取后三个属性?????
谢谢!!!

[解决办法]
xmlns是名空间Element.getNamespaceURI()可以获得

xmlns:xsi > Element.getNamespaceForPrefix("xsi").getURI()

xsi:schemaLocation > el.selectSingleNode("@xsi:schemaLocation").getText()

读书人网 >Java相关

热点推荐