Using XPath to copy nodes



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
.



Relevant Pages

  • Using XPath to copy nodes
    ... private Element getAnswers(Element root, String queID) throws ... XPath xpath = factory.newXPath; ... //Design the query to search through the XML Document ...
    (comp.lang.java.programmer)
  • Re: Returning "nearest in document" matches using XPath
    ... Nick Leverton escribió: ... > currently using the following XPath: ... I dont see this reflected in the XML document. ... I want to find the left-most one in the above diagram, nearest to the root ...
    (comp.text.xml)
  • Re: Why this code does not cause error in .NET 2 & 3.5 (bug?)
    ... An XmlNodeList containing a collection of nodes matching the XPath ... query. ... changes that appear in the XML document may ... prefer the design of .NET. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Returning "nearest in document" matches using XPath
    ... What do you mean by "nearest"? ... I dont see this reflected in the XML document. ... currently using the following XPath: ... only the node which matches nearest the root of the XML document. ...
    (comp.text.xml)
  • Re: DB in XML
    ... search criterion you can create the XPath to get the root. ... > Let's say i have XML document of this type: ...
    (microsoft.public.vb.database)