Cevaplarınız için çok teşekkürler,
Webdeki xml den günde bir kez veriyi alıp database e işlemem/update etmem
gerektiği için ben bir java class I yazdım, xml I pars edip değerleri sql
update I oluştuacak bir string gibi topluyorum. Sonrasında task scheduler ile
gidir o java classını çalıştıtıyorum.
Recep Bey’in önerisini ilk fırsatta uygulayacağım merak ettim bir kez
yapabilrisem bana çok gerekli bir şey bu.
Ayrıca java ile yazdığım class I ekte paylaşıyorum belki hazır çözüm olarak
ihtiyacı olan olur.
From: [email protected]
[mailto:[email protected]] On Behalf Of Recep KIRMIZI
Sent: 30 Ağustos 2014 Cumartesi 11:32
To: Özgür yazılımlarla çeşitli dillerde yazılım geliştirme
Subject: [Linux-programlama] Re: Webden xml okuma
Bu da dışarıdan xml okumak için muhtemelen olabilecek en pis python kodu.
Kod kalitesini göz ardı edin. Yapılabilirliğini gösterebilmek adına bu kodu
paylaşıyorum.
öncelikle: pip install cherrypy
sonrasında aşağıdaki kodu xml.py olarak kaydedin.
------------------------------
import cherrypy
from urllib import urlopen
class GetXml(object):
@cherrypy.expose
def index(self,url):
xml = urlopen(url).read()
return xml
cherrypy.quickstart(GetXml())
----------------------------------------
sonra python xml.py dediğinizde 8080 portundan sizi dinleyecek basit bir http
server çalışacak ve sizden bir url parametresi bekleyecek.
sonra tarayıcınızda:
http://localhost:8080/?url=http://www.xmlfiles.com/examples/cd_catalog.xml
adresini çağırdığınızda url parametresinde bulunan xml 'i alıp sizin kendi
sunucunuzda sunacak.
ilk e-postamda belirttiğim js kodunda .get ile çağırdığınız url burada cherrypy
ile çalıştırdığınız url olacak.
yani
$.get("http://localhost:8080/?url=http://www.xmlfiles.com/examples/cd_catalog.xml",
gibi.
tabi $.get ile çağırdığınız adreside dinamik yapmak isteyeceksinizdir. onu da
querystring 'den js ile almanın yolları var.
[1] adresinde anlatılmış güzel bir örneği bulunuyor.
bu şekilde cherrypy 'a göndereceğiniz xml urlsini de dinamik hale
getirebilirsiniz.
Sözün özü bir xml okumak için "javascript 'i bırakıp javaya geçiyorum" demek.
"Motosiklet kullanırken çantamı koyacak bir yer bulamıyorum. O zaman ben kamyon
kullanmaya başlayayım kasasına istediğimi koyarım" gibi bir şey oluyor.
Motosikletin arkasına bir tane çanta takarak konuyu rahatça çözebilirsiniz.
[1]
http://jquery-howto.blogspot.com.tr/2009/09/get-url-parameters-values-with-jquery.html
30 Ağustos 2014 10:46 tarihinde M.Dumlupinar <[email protected]
<mailto:[email protected]> > yazdı:
>Hocam javascript 'ten java'ya geçiş çok iddalı olmuş.
Recep Bey'in dediğine ilave olarak: bence yanlış da olmuş.
30 Ağustos 2014 10:43 tarihinde Recep KIRMIZI <[email protected]
<mailto:[email protected]> > yazdı:
Öncelikle Herkesin 30 Ağustos Zafer Bayramı kutlu olsun.
Hocam javascript 'ten java'ya geçiş çok iddalı olmuş.
Front-end geliştiricisi değilim ama size bir çözm sağlamaya çalışayım. [1]
adresindeki çözüm sanırım sizin işinizi görecektir.
[2] adresinde de xml kaynağı bulunuyor.
Farklı bir domain'den okuma işi ile ilgili olarakta eğer xml sağlayan sunucu
size ait ise ve ben bunu illaki javascript ile alacam diyorsanız "CORS" arama
metnini araştırabilirsiniz. xml'i size sunan sunucu size ait degil ise bir
server dili ile ilgili xml 'i javascript 'in bulunduğu sunucuya alıp kodda
gösterilen şekilde işleyebilirsiniz. python, php, bash bunların hepsi ile 1,2
satırda ilgili xml dosyasını kendi sunucunuza alma işlemini yapmak çok basit
olacaktır.
[1] ofis.artistanbulpr.com/xml.html <http://ofis.artistanbulpr.com/xml.html>
[2] ofis.artistanbulpr.com/xml.xml <http://ofis.artistanbulpr.com/xml.xml>
30 Ağustos 2014 02:29 tarihinde Hakan Karas <[email protected]> yazdı:
BU işlemi java ile gerçekleştirmeye karar verdim. Teşekkürler
From: Hkn Karas [mailto:[email protected] <mailto:[email protected]> ]
Sent: 26 Ağustos 2014 Salı 16:28
To: Özgür yazılımlarla çeşitli dillerde yazılım geliştirme
Subject: Re: [Linux-programlama] Re: Webden xml okuma
Daha önce böyle bir yöntem kullanmış olan arkadaşlar var iletleme yöntemi için
önerilerini rica ediyorum.
2014-08-26 16:17 GMT+03:00 Adil İLHAN <[email protected]
<mailto:[email protected]> >:
Çekebilirsiniz.
HK
_______________________________________________
Linux-programlama mailing list
[email protected]
<mailto:[email protected]>
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
--
Saygılarımla... Recep KIRMIZI
_______________________________________________
Linux-programlama mailing list
[email protected]
<mailto:[email protected]>
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
--
İyi günler, iyi çalışmalar...
Mustafa DUMLUPINAR
_______________________________________________
Linux-programlama mailing list
[email protected]
<mailto:[email protected]>
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
--
Saygılarımla... Recep KIRMIZI
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Date;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
public class TestData {
private static String xmldenBulunanlar;
private final static Logger logger =
Logger.getLogger(TestData.class.getName());
private static FileHandler fh = null;
public static void runQueryTestData (String xmldenBulunanlar) {
try {
logger.log(Level.INFO, "runQuery method calismaya
basladi");
String dbcon =
"jdbc:sqlserver://localhost:1433;database=mdb;user=Servicedesk;password=EEEeee12";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(dbcon);
java.sql.Statement statement = conn.createStatement();
logger.log(Level.INFO, "Database baglantisi
tamamlandi..");
String updateQuery1 = "update test_tablo set
test_tablo.zizin = 1 where test_tablo.zSicilNo IN " + xmldenBulunanlar + " and
test_tablo.zizin != 1";
logger.log(Level.INFO, "1.Update Sorgusu = " +
updateQuery1);
String updateQuery2 = "update test_tablo set
test_tablo.zizin = NULL where test_tablo.zizin = 1 test_tablo.zSicilNo NOT IN "
+ xmldenBulunanlar;
logger.log(Level.INFO, "2.Update Sorgusu = " +
updateQuery2);
statement.execute(updateQuery1);
logger.log(Level.INFO, "1.Update Sorgusu Tamamlandi.."
+ updateQuery1);
statement.execute(updateQuery2);
logger.log(Level.INFO, "2.Update Sorgusu Tamamlandi.."
+ updateQuery1);
} catch (Exception e) {
logger.log(Level.SEVERE, "Hata Alindi");
e.printStackTrace();
}
}
public static void loggerTestData (long now) {
try {
fh = new FileHandler("C:/Users/MYPC/Desktop/kodlar/" +
"LOG_TestData_" + now + ".txt", false);
Logger l = Logger.getLogger("");
fh.setFormatter(new SimpleFormatter());
l.addHandler(fh);
l.setLevel(Level.CONFIG);
} catch (SecurityException | IOException e) {
e.printStackTrace();
}
}
public static void main(String argv[]) {
Date now = new Date();
TestData.loggerTestData(now.getTime());
xmldenBulunanlar = "(";
try {
logger.log(Level.INFO, "****************************
Start ****************************");
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbf.newDocumentBuilder();
String urlString =
"http://test.services.test.com.tr/Service?wsdl";
Document doc = builder.parse(urlString);
logger.log(Level.INFO, "xml e baglanildi.. (" +
urlString +")");
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("xs:element");
for (int temp = 0; temp < nList.getLength(); temp++) {
try {
Node nNode = nList.item(temp);
if (nNode.getNodeType() ==
Node.ELEMENT_NODE) {
Element eElement = (Element)
nNode;
xmldenBulunanlar += "'" +
eElement.getAttribute("name") + "',";
}
} catch (Exception e) {
logger.log(Level.SEVERE, "xml okuma
Loop içinde Hata Alindi");
e.printStackTrace();
}
}
xmldenBulunanlar += "'123456')";
logger.log(Level.INFO, "runQuery method cagirildi..");
runQueryTestData(xmldenBulunanlar);
} catch (Exception e) {
logger.log(Level.SEVERE, "main Icerisinde Hata Alindi");
e.printStackTrace();
}
logger.log(Level.INFO, "Stop..");
}
}_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php