Merhaba ;
aşağıdaki şekilde bir xml i parse edip veritabanına kaydetmek istiyorum.
xml iç içe olduğu için ve attiribute ler olduğu için biraz problem yaşadım.
yardım ve destek sağlarsanız çok sevinirim.
burada ;
Shipment ShipmentNumber="8100002529" InvoiceNumber="0000000000" ShipmentDate="2018-09-12" TruckPlate="HAVA KARGO" ContainerNumber="HAVA KARGO" DispatchDate="0000-00-00"
bu kısımlarla aşağısında yer alan bu sevkiyata ait ürün detaylarını satır satır kaydetmek istiyorum.
http://f2r.gen.tr/sevkiyat.xml
XML parse
11
●263
- 13-09-2018, 10:47:08
- 13-09-2018, 10:54:33selamlar, çok kolay bi şekilde halledilebilir ben klasik aspciyim oyuzden windows serveriniz varsa bunu hızlıca parse edip size sonucları ister liste şeklinde ister veritabanına kaydedecek şekilde yapacak bir script hazırlayabilirim.
Eğer kendiniz yapacaksanız: "<ShipmentDetail" ve "/>" arasındaki kümeleri alıp, bunları döngü içerisinde parçalayıp uygun stringe atayabilirsiniz. - 13-09-2018, 11:08:12merhaba ;
classic asp de kısmen bende yaptım. shipment detail i alıyorum fakat sorun şurada hangi detay hangi sevkiyata ait bunu bilmem için iç içe döngü oluşturup bu sevkiyatla bu ürünler gelmiş diyebilmem gerekir.
aşağıda klasik asp üzerinde yaptığım örnek var. yardımcı olabilirsen sevinirim.
PostUrl="http://www.f2r.gen.tr/sevkiyat.xml"
set objXMLDoc = createObject("MSXML2.DOMDocument")
objXMLDoc.async = False
objXMLDoc.setProperty "ServerHTTPRequest", true
objXMLDoc.load(PostUrl)
Set Root = objXMLDoc.documentElement
Set NodeList = Root.getElementsByTagName("Shipments")
set nodes = objXMLDoc.selectNodes("//*")
for i = 1 to nodes.length -1
set attributes = nodes.item(i).attributes
for j = 0 to attributes.length - 1
response.write( attributes.item(j).nodeName & " - " & attributes.item(j).value & " <br> ")
ShipmentNumber =attributes.item(j).value
InvoiceNumber =attributes.item(j).value
ShipmentDate =attributes.item(j).value
TruckPlate =attributes.item(j).value
ContainerNumber =attributes.item(j).value
DispatchDate =attributes.item(j).value
BdtCode =attributes.item(j).value
ProdcutCode =attributes.item(j).value
Quantity =attributes.item(j).value
OrderReference =attributes.item(j).value
BdtOrderNumber =attributes.item(j).value
CustomerItemReference =attributes.item(j).value
CustomerItemCode =attributes.item(j).value
CustomerOrderReference =attributes.item(j).value
ProductName_Tr =attributes.item(j).value
ProductSpec_Tr =attributes.item(j).value
ProductName_En =attributes.item(j).value
ProductSpec_En =attributes.item(j).value
tarih =date
saat =time
tarihsaat =Now
Set rsz = Server.CreateObject("ADODB.Recordset")
sorz = "Select * from tbl_servis_tirlist limit 1"
rsz.Open sorz,baglan,1,3
rsz.addnew
rsz("ShipmentNumber") =Trim(ShipmentNumber)
rsz("InvoiceNumber") =Trim(InvoiceNumber)
rsz("ShipmentDate") =Trim(UrunHiyerarsisiTanimi)
rsz("TruckPlate") =Trim(TruckPlate)
rsz("ContainerNumber") =Trim(ContainerNumber)
rsz("DispatchDate") =Trim(DispatchDate)
rsz("BdtCode") =Trim(BdtCode)
rsz("ProdcutCode") =Trim(ProdcutCode)
rsz("Quantity") =Trim(Quantity)
rsz("OrderReference") =Trim(OrderReference)
rsz("BdtOrderNumber") =Trim(BdtOrderNumber)
rsz("CustomerItemReference") =Trim(CustomerItemReference)
rsz("CustomerItemCode") =Trim(CustomerItemCode)
rsz("CustomerOrderReference") =Trim(UrunHiyerarsisiTanimi)
rsz("ProductName_Tr") =Trim(ProductName_Tr)
rsz("ProductSpec_Tr") =Trim(ProductSpec_Tr)
rsz("ProductName_En") =Trim(ProductName_En)
rsz("ProductSpec_En") =Trim(ProductSpec_En)
rsz("tarih") =tarih
rsz("saat") =saat
rsz("tarihsaat") =tarihsaat
rsz.update
next
next - 13-09-2018, 12:20:15@neptun söylediğini yaptım ama yandaki properyleri alamadım. bir de iç içe olduğu için iç içe döngü gerekli sanırım.
@DİZİNİ örnek olarak birşey verebilir misin ? - 13-09-2018, 12:35:02Kimlik doğrulama veya yönetimden onay bekliyor.F2RSolutions adlı üyeden alıntı: mesajı görüntüle
<?php
$xml = 'XMLin İÇİNİ BURAYA YAPIŞTIRIN';
$xml = preg_replace("/(</?)(w+):([^>]*>)/", "$1$2$3", $xml);
$xml = simplexml_load_string($xml);
$json = json_encode($xml, JSON_PRETTY_PRINT);
echo "<pre>".$json."</pre>";
?>
sonuç istediğiniz gibi olacak sanırım. tekrar array e çevirip attributeleri de alabilirsiniz. - 13-09-2018, 12:57:24$xml = simplexml_load_file("http://www.f2r.gen.tr/sevkiyat.xml");
$xml = 'XMLin İÇİNİ BURAYA YAPIŞTIRIN';
$xml = preg_replace("/(</?)(w+)
[^>]*>)/", "$1$2$3", $xml);
$xml = simplexml_load_string($xml);
$json = json_encode($xml, JSON_PRETTY_PRINT);
echo "<pre>".$json."</pre>";
bu şekilde yaptığımda hata veriyor sayfa
Warning: preg_replace(): Unknown modifier '?' in C:\AppServ\www\xml.php on line 7
false
ztk adlı üyeden alıntı: mesajı görüntüle - 13-09-2018, 13:04:36F2RSolutions adlı üyeden alıntı: mesajı görüntüle
$xml = simplexml_load_file("http://www.f2r.gen.tr/sevkiyat.xml");
$xml = 'XMLin İÇİNİ BURAYA YAPIŞTIRIN'; =>> bu satırı sildiniz değil mi.
[^>]*>)/", "$1$2$3", $xml);