Milyen deklarációval tehetjük a következő ciklust végtelenné?
while (i == i + 1) {
}
Első ránézésre semmivel, hiszen egy szám soha nem lesz egyenlő a nála egyel nagyobb számmal. Talán, ha i értéke valahogy lehetne végtelen… nos, a Java-ban lehet, ugyanis a Java megköveteli az IEEE-754 lebegő pontos aritmetika használatát, ami viszont lehetővé teszi, hogy a végtelent double vagy float típusként ábrázoljuk. Hát nem csodálatos ez a nyelv? ;-)
Végtelen értéket több féle képen is elő lehet állítani, pl.
double i = 1.0 / 0.0; double i = Double.POSITIVE_INFINITY;
Ebben a fejezetben megnézzük, hogyan lehet egy XML dokumentumban megkeresni egy elemet az org.apache.xerces.parsers.DOMParser csomag által definiált DOM API-k segítésével. Ne felejtsd el, hogy a classpath-nak tartalmaznia kell a xercesImpl.jar és a xml-apis.jar fájlokat a program futtatásához. Ezek letölthetőek a Xerces projekt oldaláról.
A program leírása:
A program bekéri az XML fájl nevét és ellenőrzi az elérhetőségét. Ha a fájl létezik elemzi a parse() metódus használatával. Ez a metódus a DOMParser segítségével elemzi az XML dokumentumot. A DOMParser az org.apache.xerces.parsers.DOMParser csomagban van definiálva, nagyon jól használható DOMParser objektum létrehozására. A program bekéri a keresendő XML elem nevét. A getLength() metódussal megszámolja a megadott elem előfordulását, ha az érték 0, akkor üzenetet jelenít meg a képernyőn, egyébként a darabszámot írja ki.
A minta XML fájl, Employee-Detail.xml:
<?xml version = "1.0" ?>
<Employee-Detail>
<Employee>
<Emp_Id>E-001</Emp_Id>
<Emp_Name>Vinod</Emp_Name>
<Emp_E-mail>Vinod1@yahoo.com</Emp_E-mail>
</Employee>
<Employee>
<Emp_Id>E-002</Emp_Id>
<Emp_Name>Amit</Emp_Name>
<Emp_E-mail>Amit2@yahoo.com</Emp_E-mail>
</Employee>
<Employee>
<Emp_Id>E-003</Emp_Id>
<Emp_Name>Deepak</Emp_Name>
<Emp_E-mail>Deepak3@yahoo.com</Emp_E-mail>
</Employee>
</Employee-Detail>
A program, SearchElement.java:
import org.w3c.dom.*;
import org.apache.xerces.parsers.DOMParser;
import java.io.*;
public class SearchElement {
public static void main(String[] args) {
try {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter file name: ");
String str = bf.readLine();
File file = new File(str);
if (file.exists()) {
DOMParser parser = new DOMParser();
parser.parse(str);
Document doc = parser.getDocument();
System.out.print("Enter element that have to count: ");
String ele = bf.readLine();
NodeList list = doc.getElementsByTagName(ele);
if(list.getLength() == 0) {
System.out.println("Element doesn't exist in the " + str + " Document.");
}
else {
System.out.println("Element occurrs " + list.getLength() + " times in the " + str);
}
}
else {
System.out.println("File not found!");
}
}
catch (Exception e) {
e.getMessage();
}
}
}
A következő fejezetben elkészítjük az első XML fájlt.
Ebben a fejezetben megtanulhatod hogyan ellenőrizhető az XML formázottsága a DOM interfész segítségével. Egy jól formázott XML dokumentumnak követnie kell az XML szintaxis szabályait.
A program leírása:
A program ellenőrzi egy XML dokumentum jól-formázottságát. Ha az XML dokumentum jól formázott, akkor jó, ellenkező esetben hiba üzenetet kell adnia a programnak. A megvalósításhoz a parser() metódus által dobott kivételt használd fel.
A minta XML fájl, Employee-Detail.xml:
<?xml version = "1.0" ?>
<Employee-Detail>
<Employee>
<Emp_Id>E-001</Emp_Id>
<Emp_Name>Vinod</Emp_Name>
<Emp_E-mail>Vinod1@yahoo.com</Emp_E-mail>
</Employee>
<Employee>
<Emp_Id>E-002</Emp_Id>
<Emp_Name>Amit</Emp_Name>
<Emp_E-mail>Amit2@yahoo.com</Emp_E-mail>
</Employee>
<Employee>
<Emp_Id>E-003</Emp_Id>
<Emp_Name>Deepak</Emp_Name>
<Emp_E-mail>Deepak3@yahoo.com</Emp_E-mail>
</Employee>
</Employee-Detail>
A program, DOMParserCheck.java:
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
public class DOMParserCheck {
static public void main(String[] arg){
try{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter File name: ");
String xmlFile = bf.readLine();
File file = new File(xmlFile);
if(file.exists()) {
try {
// Create a new factory to create parsers
DocumentBuilderFactory dBF = DocumentBuilderFactory.newInstance();
// Use the factory to create a parser (builder) and use
// it to parse the document.
DocumentBuilder builder = dBF.newDocumentBuilder();
// builder.setErrorHandler(new MyErrorHandler());
InputSource is = new InputSource(xmlFile);
Document doc = builder.parse(is);
System.out.println(xmlFile + " is well-formed!");
}
catch (Exception e) {
System.out.println(xmlFile + " isn't well-formed!");
System.exit(1);
}
}
else {
System.out.print("File not found!");
}
}
catch(IOException io) {
io.printStackTrace();
}
}
}
A következő fejezetben egy elemet keresünk adott XML dokumentumban.
Ebben a fejezetben megtanulhatod hogyan lehet az elemeket megszámolni az XML dokumentumban az org.apache.xerces.parsers.DOMParser csomagban definiált DOM API segítségével. A program futtatásához a classpath-nak tartalmaznia kell a xercesImpl.jar és xml-apis.jar fájlokat, ezek a Xerces-től tölthetőek le.
A program leírása:
A program bekéri a fájl nevét a konzolról, ellenőrzi annak elérhetőségét. Ha a fájl létezik létrehozunk egy DOMParser osztályt az org.apache.xerces.parsers.DOMParser csomag használatával. Az objektum elemzi az XML dokumentumot, majd a program bekéri az összeszámolandó elem nevét, és összeszámolja az előfordulását az XML fájlban. Ha az elem nem létezik, 0-val tér vissza.
A minta XML fájl, Employee-Detail.xml:
<?xml version = "1.0" ?>
<Employee-Detail>
<Employee>
<Emp_Id>E-001</Emp_Id>
<Emp_Name>Vinod</Emp_Name>
<Emp_E-mail>Vinod1@yahoo.com</Emp_E-mail>
</Employee>
<Employee>
<Emp_Id>E-002</Emp_Id>
<Emp_Name>Amit</Emp_Name>
<Emp_E-mail>Amit2@yahoo.com</Emp_E-mail>
</Employee>
<Employee>
<Emp_Id>E-003</Emp_Id>
<Emp_Name>Deepak</Emp_Name>
<Emp_E-mail>Deepak3@yahoo.com</Emp_E-mail>
</Employee>
</Employee-Detail>
A program, CountNodes.java:
import org.w3c.dom.*;
import org.apache.xerces.parsers.DOMParser;
import java.io.*;
public class CountNodes {
public static void main(String[] args) {
try{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter file name: ");
String str = bf.readLine();
File file = new File(str);
if (file.exists()) {
DOMParser parser = new DOMParser();
parser.parse(str);
Document doc = parser.getDocument();
System.out.print("Enter element that have to count: ");
String ele = bf.readLine();
NodeList list = doc.getElementsByTagName(ele);
System.out.println("Number of nodes: " + list.getLength());
}
else {
System.out.println("File not found!");
}
}
catch (Exception e) {
e.getMessage();
}
}
}
A következő fejezetben XML formátum ellenőrzéssel fogunk foglalkozni …
Ebben a fejezetben meg fogod tanulni megszámolni az elemeket egy XML fájlban DOM API segítségével.
A program leírása:
A program segít megszámolni az XML elemeket. A program a konzolon keresztül bekéri az XML fájl nevét és ellenőrzi az elérhetőségét. Elemzi az XML dokumentumot a parse() metódussal. Az XML dokumentum elemzése után bekéri az elem nevét amit meg akarunk számolni. Készíts egy NodeList-et és használd a getElementByTagName() metódust. A getLength() metódus megszámolja a megadott elem előfordulását. Ha a megadott elem nem létezik 0-val térjen vissza.
A minta XML fájl, Employee-Detail.xml:
<?xml version = "1.0" ?>
<Employee-Detail>
<Employee>
<Emp_Id>E-001</Emp_Id>
<Emp_Name>Vinod</Emp_Name>
<Emp_E-mail>Vinod1@yahoo.com</Emp_E-mail>
</Employee>
<Employee>
<Emp_Id>E-002</Emp_Id>
<Emp_Name>Amit</Emp_Name>
<Emp_E-mail>Amit2@yahoo.com</Emp_E-mail>
</Employee>
<Employee>
<Emp_Id>E-003</Emp_Id>
<Emp_Name>Deepak</Emp_Name>
<Emp_E-mail>Deepak3@yahoo.com</Emp_E-mail>
</Employee>
</Employee-Detail>
A program, DOMCountElement.java:
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class DOMCountElement {
public static void main(String[] args) {
try {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter File name: ");
String xmlFile = bf.readLine();
File file = new File(xmlFile);
if (file.exists()) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// Create the builder and parse the fájl
Document doc = factory.newDocumentBuilder().parse(xmlFile);
System.out.print("Enter element name: ");
String element = bf.readLine();
NodeList nodes = doc.getElementsByTagName(element);
System.out.println("xml Document Contains " + nodes.getLength() + " elements.");
}
else{
System.out.print("File not found!");
}
}
catch (Exception ex) {
System.out.println(ex);
}
}
}
A következő fejezetben az XML fájlban lévő elemek számolásával fogunk foglalkozni …
Search BlogNévjegyThis is the about text |
Kategóriák
|
Latest Posts
|
||
