private Element createElement(NodeInfo nodeInfo) {
Element el = new Element(nodeInfo.getLocalName());
AxisIterator iter = nodeInfo.iterateAxis(Axis.CHILD, AnyNodeTest.getInstance());
while (iter.hasNext()) {
Item item = iter.next();
switch (item.getItemType()) {
case Type.ELEMENT:
el.addContent(createElement((NodeInfo) item));
break;
default:
try {
el.setText(item.getStringValue());
} catch (XPathException e) {
e.printStackTrace();
}
}
}
iter = nodeInfo.iterateAxis(Axis.ATTRIBUTE, AnyNodeTest.getInstance());
while (iter.hasNext()) {
Item item = iter.next();
el.setAttribute(((NodeInfo) item).getLocalName(), ((NodeInfo) item).getStringValue());
}
return el;
}