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

Cevap