Using XPath to copy nodes

B

barbaradefrancorik

Hi,

I'm thinking I'm missing something in the middle. Currently, I'm
optimizing this one project to dump a table into an XML document
temporarily to minimize the number of hits on the database. The
original logic had struck the database at a minimum of 200 per
creation of each document thus leading to 6 documents a minute which
is not that fast when I need to generation 50k documents.
http://dolly.mrl.unimo.it/user/view.php?id=2383

The design so far it:
---
private Element getAnswers(Element root, String queID) throws
Exception{
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();

//Design the query to search through the XML Document
String xpQry = "/answers/ques[@sequence='" + SeqNo + "' and
@item_id='" + queID + "']/answ";
//Execute the query
XPathExpression expr = xpath.compile(xpQry);
Object result = expr.evaluate(ansDoc, XPathConstants.NODESET);

//Store the Results
NodeList nodes = (NodeList) result;

//Exit if there is no results found
if(nodes.getLength() == 0){
return root;
}

//Get ID for later use
xpQry = "/answers/ques[@sequence='" + SeqNo + "' and
@item_id='" + queID + "']/@id";
expr = xpath.compile(xpQry);
result = expr.evaluate(ansDoc, XPathConstants.NODESET);
NodeList ansID = (NodeList) result;

//Does not append anything
for(int nCnt=0;nCnt==nodes.getLength();nCnt++){
Element answ = (Element) nodes.item(nCnt);

root.appendChild(answ);
}

return root;
}
===

Sample Data:
---
<?xml version='1.0'?>

<answers>
<ques id='9447FCB8-1F77-422A-8FDA-7713CC7AE289' item_id='3BDF6103-
FC8C-4697-B93F-A49BAAAC97F2' sequence='0'>
<answ answered='2009-03-02 13:23:00.857' device='system'
personnel='DTS, DTS'><![CDATA[Hall/Foyer]]></answ></ques></answers>
===
http://glossary.reuters.com/index.php?title=User:TRAMADOL_Buy_Cheap_Tramadol_Online
Ideally, I'd like to use XPath to query the structure for the node to
be appended onto another document. But I don't want to have to resort
to searching line by line for the node I need as it may not at the
speed in which I seek. However, I'm open to other suggestions.

Thanks
Dominc
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,981
Messages
2,570,188
Members
46,733
Latest member
LonaMonzon

Latest Threads

Top