dom4j解析基于xml的文档——获取属性有关问题
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。而后四个属性则获取不到。
源代码如下:
若将后四个属性的前半部分(如"xmls:")去掉,则是可以解析出后半部分的(如"tns")。
请问在不改动源文档的情况下,如何才能获取后三个属性?????
谢谢!!!
------解决方案--------------------
xmlns是名空间Element.getNamespaceURI()可以获得
xmlns:xsi –> Element.getNamespaceForPrefix("xsi").getURI()
xsi:schemaLocation –> el.selectSingleNode("@xsi:schemaLocation").getText()
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()