Hi there,

Here is the piece of code which I'm using to parse the given XML . Is there 
a better way than this ?

<acl_config >
        <acl name="Test">
                <privilege group="testaclgroupharjit" 
permission="PERMIT_DELETE"/>
                <privilege group="testaclgroupharjit" permission="PERMIT_NONE"/>
                <privilege group="testaclgroupharjit" 
permission="PERMIT_WRITE"/>
                <privilege group="testaclgroupharjit" 
permission="PERMIT_BROWSE"/>
                <privilege group="testaclgroupharjit" 
permission="PERMIT_RELATE"/>
                <privilege group="testaclgroupharjit" permission="PERMIT_NONE"/>
                <privilege group="testaclgroupharjit" 
permission="PERMIT_VERSION"/>
        </acl>
        <acl name="Test1">
                <privilege group="testaclgroupharjit2" 
permission="PERMIT_BROWSE"/>
                <privilege group="testaclgroupharjit2" 
permission="PERMIT_BROWSE"/>
                <privilege group="testaclgroupharjit2" 
permission="PERMIT_BROWSE"/>
                <privilege group="testaclgroupharjit2" 
permission="PERMIT_BROWSE"/>
                <privilege group="testaclgroupharjit2" 
permission="PERMIT_BROWSE"/>
                <privilege group="testaclgroupharjit2" 
permission="PERMIT_BROWSE"/>
                <privilege group="testaclgroupharjit2" 
permission="PERMIT_BROWSE"/>
        </acl>
</acl_config>


List aclConfigObjectList = new ArrayList();
                String aclXPath = "/acl_config/*";
                XPath xpathSelector = DocumentHelper.createXPath(aclXPath);
                List results = xpathSelector.selectNodes(xmldocument);
                Attribute aclName;
                Attribute groupName;
                Attribute permission;
                String aclValue = null;
                ACLConfig aclConfig = null;
                GroupConfig groupConfig = null;
                Vector groups = null;
                if (results != null) {
                        for (int i = 0; i < results.size(); ++i) {
                                Element e = (Element) results.get(i);
                                if ((aclName = e.attribute(NAME)) != null) {
                                        aclConfig = new ACLConfig();
                                        
aclConfig.setAclName(aclName.getValue());
                                        groups = new Vector();
                                        int iNodeCount = e.nodeCount();
                                        for (int iNodeIndex = 0; iNodeIndex < 
iNodeCount; ++iNodeIndex) {
                                                Node node = e.node(iNodeIndex);
                                                if (node instanceof Element) {
                                                        Element group = 
(Element) node;
                                                        groupConfig = new 
GroupConfig();
                                                        if 
(group.attribute(GROUP) != null) {
                                                                groupName = 
group.attribute(GROUP);
                                                                
groupConfig.setGroupName(groupName.getValue());
                                                        }
                                                        if 
(group.attribute(PERMISSION) != null) {
                                                                permission = 
group.attribute(PERMISSION);
                                                                groupConfig
                                                                                
.setPermission(lookupPermission(permission
                                                                                
                .getValue()));
                                                                
groups.add(groupConfig);
                                                        }
                                                }
                                        }

                                        if (groups.size() > 0) {
                                                
aclConfig.setGroupVector(groups);
                                        }
                                        aclConfigObjectList.add(aclConfig);
                                }
                        }

_________________________________________________________________
Hotmail to go? Get your Hotmail, news, sports and much more! 
http://mobile.msn.com


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
dom4j-user mailing list
dom4j-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dom4j-user

Reply via email to