Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημερα,

αναπτυσω ενα billing system και θελω να εχω συγκεκριμενα policies πχ free/standard/pro και να βαζω χρηστες σε καθε ενα απο αυτα. Θα μπορουσα να χρησιμοποιω ενα xml το οποιο να εχεις ως πατερα policylist και ως παιδια τα policies που θελω και μεσα τους users. Υπαρχει καποια αλλη ιδεα?

Δημοσ.
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

import java.io.File;
import java.io.IOException;

public class billing {
	public static void main(String argv[]) throws ParserConfigurationException, SAXException, IOException {
		DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); 
		DocumentBuilder builder = domFactory.newDocumentBuilder();
		Document doc = builder.parse("billing2.xml");
		
		NodeList children, subchildren;
		Node node, child, subchild;
		String name, id;
		
		NodeList nodes = doc.getElementsByTagName("Policy");
		
		for (int i = 0, ln = nodes.getLength(); i < ln; i++) 
		{
			node = nodes.item(i);
			children = node.getChildNodes();		
			//System.out.print(nodes.item(i).getTextValue()+"\n");
			for (int j = 0; j < children.getLength(); j++) {
				child = children.item(j);
				name = child.getNodeName();
				System.out.print(children.item(j).getNodeName()+"\n");
				//System.out.print(child.getTextContent()+"\n");
				if (name.equals("Name"))
				{
					subchildren = child.getChildNodes();
					//System.out.print(subchildren.getLength()+"\n");
					for (int k = 0; k < subchildren.getLength(); k++) {
						subchild = subchildren.item(k);
						name = subchild.getNodeName();
						//System.out.print(subchild.getNodeValue()+"\n");
					}
				}
			}	

		}
	}
}
<?xml version="1.0" encoding="UTF-8"?>
<policylist>
  <Policy>free
        <Name>Seagull
            <Bill>0.00</Bill>
        </Name>  
   </Policy>
  <Policy>standard
        <Name>Robin
            <Bill>0.00</Bill>
        </Name>
    </Policy>
  <Policy>premium
        <Name>Crow
            <Bill>0.00</Bill>
        </Name>
  </Policy>
</policylist>

Θελω να κανω για καθε policy να κανω print πχ οχι το tag πχ το free/standard/premium και το ονομα. Πως μπορω να το κανω?

Δημοσ.

Ισως αυτό:


import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class Billing {
	public static void main(String argv[]) throws ParserConfigurationException, SAXException, IOException {
		DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); 
		DocumentBuilder builder = domFactory.newDocumentBuilder();
		Document doc = builder.parse("billing2.xml");
		
		NodeList level1,level2,level3;
		Node node1,node2,node3,node4;
		
		level1= doc.getElementsByTagName("Policy");
		
		String policystr="",namestr;
		
		
	
		System.out.print("Policy nodes "+level1.getLength()+"\n");
		for (int i = 0; i < level1.getLength(); i++)
		{
			node1 = level1.item(i);
			level2=node1.getChildNodes();
			node2 = level2.item(0);
			//System.out.print(" Type : "+node2.getNodeName()+"\n");
		    policystr=node2.getTextContent();
		    System.out.print(" Policy : "+policystr+"\n");
			//System.out.print("nodes "+level2.getLength()+"\n");
		    for (int j=0;j<level2.getLength(); j++){
					node2 = level2.item(j);
			    //System.out.print(" node type : "+node2.getNodeName()+"\n");
		   			if (node2.getNodeName()=="Name"){
		   				level3=node2.getChildNodes();
		   				node3=level3.item(0);
		   			    System.out.print(" Name : "+node3.getTextContent()+"\n");
		       		}
		    }//for
		}//for
	}
}
	

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...