Dear visitor, welcome to Jabaco - Community.
If this is your first visit here, please read the Help. It explains in detail how this page works.
To use all features of this page, you should consider registering.
Please use the registration form, to register here or read more information about the registration process.
If you are already registered, please login here.
Translating XML Parser Example from Java
Hi people
I've been translating this example of simple XML parsing from JAVA to Jabaco's syntax:
--------------------------------------------------------------------
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DOMExampleJava {
public static void main(String args[]) {
try {
File stocks = new File("Stocks.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(stocks);
doc.getDocumentElement().normalize();
System.out.println("root of xml file" + doc.getDocumentElement().getNodeName());
NodeList nodes = doc.getElementsByTagName("stock");
System.out.println("==========================");
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
System.out.println("Stock Symbol: " + getValue("symbol", element));
System.out.println("Stock Price: " + getValue("price", element));
System.out.println("Stock Quantity: " + getValue("quantity", element));
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static String getValue(String tag, Element element) {
NodeList nodes = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = (Node) nodes.item(0);
return node.getNodeValue();
}
}
--------------------------------------------------------------------
It's taken from here:
http://javarevisited.blogspot.co.uk/2011…e-tutorial.html
They only problem I have is in knowing how to refrormat the lines:
|
Jabaco Source
|
1
|
Element element = (Element) node;
|
and
|
Jabaco Source
|
1
|
Node node = (Node) nodes.item(0);
|
How would these be written in Jabaco's syntax?
Thanks for any help
Hi could you please post your code cause I need help making an xml parser
Oh, have forgotten to answer to this post.
Create on your desktop the file "Stocks.xml" with this text in the file:
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?xml version="1.0" encoding="UTF-8"?>
<stocks>
<stock>
<symbol>Citibank</symbol>
<price>100</price>
<quantity>1000</quantity>
</stock>
<stock>
<symbol>Axis bank</symbol>
<price>90</price>
<quantity>2000</quantity>
</stock>
</stocks>
|
Then this Jabaco-port works:
|
Jabaco Source
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
Import java#io#File
Import javax#xml#parsers#DocumentBuilder
Import javax#xml#parsers#DocumentBuilderFactory
Import org#w3c#dom#Document
Import org#w3c#dom#Element
Import org#w3c#dom#Node
Import org#w3c#dom#NodeList
Public Sub main(ByJava args() As String)
Dim stocks As New File("Stocks.xml")
Dim dbFactory As DocumentBuilderFactory = DocumentBuilderFactory.newInstance
Dim dBuilder As DocumentBuilder = dbFactory.newDocumentBuilder
Dim doc As Document = dBuilder.parse(stocks)
doc.getDocumentElement.normalize
System.out.println("root of xml file " & doc.getDocumentElement.getNodeName)
Dim nodes As NodeList = doc.getElementsByTagName("stock")
System.out.println("==========================")
Dim i As Integer
For i = 0 To nodes.getLength -1
Dim jnode As org#w3c#dom#Node = nodes.item(i)
If jnode.getNodeType = jnode.ELEMENT_NODE Then
Dim jelement As Element = Cast(jnode, Element)
System.out.println("Stock Symbol: " & getValue("symbol", jelement))
System.out.println("Stock Price: " & getValue("price", jelement))
System.out.println("Stock Quantity: " & getValue("quantity", jelement))
End If
Next i
MsgBox ""
End Sub
Private Function getValue(tag As String, jelement As Element) As String
Dim nodes As NodeList = jelement.getElementsByTagName(tag).item(0).getChildNodes
Dim zNode As org#w3c#dom#Node = nodes.item(0)
Dim jnode As org#w3c#dom#Node = Cast(zNode, org#w3c#dom#Node)
getValue = jnode.getNodeValue
End Function
|
Greatings
theuserbl
Oh, have forgotten to answer to this post.
Do you have code to change a value in the xml file?
Thanks very much for this
Will try it out as soon as I get the opportunity.