import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.Transformer;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Text;

public class aufg532
{
	public static void main(String[] argv) throws Exception
	{
	   if (argv.length != 1)
      {
         System.out.println("USAGE: java aufg532 <xmlInvoiceFile>");
         System.exit(1);
      } //if

		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
      Document myDocument = builder.parse( argv[0] );

      NodeList nodes = myDocument.getElementsByTagName("Posten");

      double sum=0;
      for (int i=0; i<nodes.getLength(); i++)
      {
         sum += Double.parseDouble( ((Element) nodes.item(i)).getAttribute("preis") );
      } //for

      Element sumElement = myDocument.createElement("Summe");
      Text amount = myDocument.createTextNode( Double.toString( sum ) );

      sumElement.appendChild( amount );

      (myDocument.getDocumentElement()).appendChild(sumElement);

		// implementation specific part begins ...
		TransformerFactory transFactory = TransformerFactory.newInstance();
      Transformer myTransformer = transFactory.newTransformer();
		DOMSource src = new DOMSource( myDocument );
      StreamResult res = new StreamResult( System.out );
      myTransformer.transform( src, res );
		// ... ends
	} //main()
} //class aufg532