/* package whatever; // don't place package name! */
import java.io.StringReader;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Iterator;
import java.util.Random;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
final String xmlStr
= "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"+ "<Order OrderNo=\"1\"><OrderLines><OrderLine cartItemId=\"4\"><Item ItemID=\"76225834\" /></OrderLine>\n"+
"<OrderLine cartItemId=\"1\"><Item ItemID=\"76225814\" /></OrderLine>\n"+
"<OrderLine cartItemId=\"3\"><Item ItemID=\"76225814\" /></OrderLine>\n"+
"<OrderLine cartItemId=\"2\"><Item ItemID=\"76245534\" /></OrderLine></OrderLines></Order>";
Document docInDoc
= convertStringToDocument
(xmlStr
); Element eleRoot
= docInDoc.
getDocumentElement();
List<String> itemIdList = new ArrayList<String>();
List<Element> resultOrderLineEleList = new ArrayList<Element>();
int count = 1;
NodeList orderLineEleList = eleRoot.getElementsByTagName("OrderLine");
HashMap
<Element, Integer
> resultOrderLineHashMap
= new HashMap
<Element, Integer
>();
for(int i = 0; i< orderLineEleList.getLength(); i++)
{
String itemId
= itemEle.
getAttribute("ItemID"); String cartItemId
= orderLineEle.
getAttribute("cartItemId"); System.
out.
println("itemId " + itemId
); System.
out.
println("cartItemId " + cartItemId
); for(int j=i+1; j< orderLineEleList.getLength(); j++)
{
String itemId2
= itemEle2.
getAttribute("ItemID"); String cartItemId2
= orderLineEle2.
getAttribute("cartItemId"); System.
out.
println("itemId2 " + itemId2
); System.
out.
println("cartItemId2 " + cartItemId2
); if(!itemIdList.contains(itemId) && itemId.equals(itemId2)){
count++;
}
}
if(!itemIdList.contains(itemId))
{
resultOrderLineHashMap.put(orderLineEle, count);
}
System.
out.
println("count " + count
); count=1;
itemIdList.add(itemId);
}
for(Map.
Entry<Element, Integer
> entry
: resultOrderLineHashMap.
entrySet()){
Element orderLineEle
= entry.
getKey(); System.
out.
println(orderLineEle.
getAttribute("cartItemId"));
}
Document orderDoc
= createDocument
("Order"); Element orderEle
= orderDoc.
getDocumentElement(); orderEle.setAttribute("OrderNo", eleRoot.getAttribute("OrderNo"));
Element orderLinesEle
= orderDoc.
createElement("OrderLines"); orderEle.appendChild(orderLinesEle);
List<Element> orderLinesEleList = getElementsByTagName(orderEle, "OrderLine");;
for(Map.
Entry<Element, Integer
> entry
: resultOrderLineHashMap.
entrySet()){ orderLinesEleList.add(entry.getKey());
}
for(Element orderLineEle
: orderLinesEleList
) {
orderLinesEle.appendChild(orderLineEle);
}
}
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try
{
builder = factory.newDocumentBuilder();
return doc;
e.printStackTrace();
}
return null;
}
NodeList nodeList = startElement.getElementsByTagName(elemName);
for (int count = 0; count < nodeList.getLength(); count++) {
elemList.add(nodeList.item(count));
}
return elemList;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
int randomInt = randomGenerator.nextInt(100);
result = prime * result + randomInt;
return result;
}
throws ParserConfigurationException {
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
DocumentBuilder dbdr = fac.newDocumentBuilder();
Element ele
= doc.
createElement(docElementTag
); doc.appendChild(ele);
return doc;
}
}