[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Parse XML to database

Cean Ooi

6/2/2008 2:07:00 AM

hi, can someone help me with this
after i read theres nothing show in my database.... wat happen...?
where is my error in my code??

class Map

require 'rexml/document'
require "mysql"
require "dbi"
include REXML
scanfile = File.new('River_Va.lmx')
doc = doc = File.open('River_Va.lmx', 'rb') {|scanfile|
Document.new(scanfile)
}
puts doc

maps = REXML::Document.new()
root = maps.root

names = []
latitudes = []
longtitudes = []


#~ MSISDN = {}
#~ mobils.elements.each("MobileDevices/MobileDevice") { |element|
puts
#~ element.attributes["MSISDN"]
#~ MSISDN = element.attributes["MSISDN"] }

#~ datetime = {}
#~ mobils.elements.each("MobileDevices/MobileDevice") { |element|
puts
#~ element.attributes["datetime"]
#~ datetime = element.attributes["datetime"] }

#~ description = {}
#~ mobils.elements.each("MobileDevices/MobileDevice") { |element|
puts
#~ element.attributes["description"]
#~ description = element.attributes["description"] }


maps.elements.each("lm:landmark") { |element| puts
element.attributes["name"]
names.push element.attributes["name"]
name = element.attributes["name"]}

puts name
maps.elements.each("lm:landmark") { |element| puts
element.attributes["latitude"]
latitudes.push element.attributes["latitude"]}

puts latitudes
maps.elements.each("lm:longitude") { |element| puts
element.attributes["longtitude"]
longtitudes.push element.attributes["longtitude"] }

puts longtitudes



# db insert
dbname="email_development"

m = Mysql.new("localhost", "root", "", "email_development")
sth=m.query("insert into maps (name,latitude,longtitude) values
(name,latitude,longtitude)")
#~ ("INSERT INTO Maps (name, latitude,
#~ longtitude)
#~ VALUES (?,?,?,?,?)")
#~ models.each_index do |index|
#~name = names[index]
#~ latitude = latitudes[index]
#~ longtitude = longtitudes[index]
# sth.execute("River_Va.lmx", "email_development", "#{names}",
#"#{latitudes}", "#{longtitudes}")
#end

end



this is my xml file~~

<?xml version="1.0" encoding="UTF-8"?>
<lm:lmx xmlns:lm="http://www.nokia.com/schemas/location/landmarks...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst...
xsi:schemaLocation="http://www.nokia.com/schemas/location/lan...
lmx.xsd">
<lm:landmarkCollection>
<lm:landmark>
<lm:name>River Valley High School</lm:name>
<lm:coordinates>
<lm:latitude>9.36</lm:latitude>
<lm:longitude>147.804</lm:longitude>
</lm:coordinates>
<lm:addressInfo>
<lm:country>Singapore</lm:country>
<lm:city>Singapore</lm:city>
<lm:postalCode>10</lm:postalCode>
<lm:district>Bukit Merah</lm:district>
<lm:street>Malan Road</lm:street>
<lm:phoneNumber>+65987987987</lm:phoneNumber>
</lm:addressInfo>
</lm:landmark>
</lm:landmarkCollection>
</lm:lmx>
--
Posted via http://www.ruby-....

4 Answers

Robert Klemme

6/2/2008 6:17:00 AM

0

On 02.06.2008 04:06, Cean Ooi wrote:
> hi, can someone help me with this
> after i read theres nothing show in my database.... wat happen...?
> where is my error in my code??

I don't see any COMMIT in there.

robert

Cean Ooi

6/2/2008 6:30:00 AM

0

hmm....i solved the database problem.. but... after i extract the xml
file, it shows me nil

which part that i did wrong?



require 'rexml/document'
require "mysql"
require "dbi"
include REXML
scanfile = File.new('River_Va.lmx')

dbname="email_development"
doc = REXML::Document.new scanfile

string = <<EOF
<mydoc>
<someelement attribute="nanoo">Text, text, text</someelement>
</mydoc>
EOF
doc = Document.new string



doc = Document.new File.new("River_Va.lmx")

doc.elements.each("lm:landmarkCollection/lm:landmark") { |element|
puts element.attributes["lm:name"] }
root = doc.root

popo = root.attributes["lm:name"]
puts root.attributes["lm:name"]
--
Posted via http://www.ruby-....

Cean Ooi

6/2/2008 7:07:00 AM

0

well.... i found it how.. but then, can anyone help me how to remove
this thing inside the database please???

<try>123</try>

cause my attribute for my try in the database is integer, and it cant
read the try, so how shud i remove that thing before the database??

really appreciate if someone would help me with this...

cheers
--
Posted via http://www.ruby-....

Cean Ooi

6/2/2008 7:07:00 AM

0

remove the <try></try>

.. thx for helping...
--
Posted via http://www.ruby-....