POST API'mma gelen yanıtın gövdesinden birden fazla XML etiketini ayrıştırma sorunları yaşıyorum. İstekte bulunan metnin veya bağlı kuruluş etiketinin yerleşimini takas edebilirim ve uygulama her zaman üst etiketi değil, diğerini ayrıştırır. Herhangi bir yardım takdir edilir. İstekte vücudunNeden sadece bir XML etiketini node.js ekspres API POST'sundan ayrıştırayım?
//Express
var app = express();
router.use(bodyParser.json());
router.use(xmlparser());
router.post('/api/v1/inboundData', function(req, res) {
var results = [];
// Grab data from http request
var data = {text: req.body.text, affiliate: req.body.affiliate};
// Get a Postgres client from the connection pool
pg.connect(connectionString, function(err, client, done) {
// Handle connection errors
if(err) {
done();
console.log(err);
return res.status(500).json({ success: false, data: err});
}
// SQL Query > Insert Data
client.query("INSERT INTO \"inboundData\"(\"data\", \"affiliate\") values($1, $2)", [data.text, data.affiliate]);
// SQL Query > Select Data
var query = client.query("SELECT * FROM \"inboundData\" ORDER BY \"ID\" DESC");
// Stream results back one row at a time
query.on('row', function(row) {
results.push(row);
});
// After all data is returned, close connection and return results
query.on('end', function() {
done();
return res.json(results);
});
});
});
İçindekiler:
<?xml version="1.0" encoding="utf-8"?>
<text>blah</text>
<affiliate>xmltest</affiliate>
Cevabınız için teşekkür ederiz. Kullandığım XML, çevrimiçi araçta geçerliliği geçer, ancak yönteminizi kullanarak daha iyi sonuçlar elde ediyorum. Yine de birkaç soru. 1: kodunuzu kullanırken db insertime giren değerler ham metin dizeleri değil, bunlar gibi özel karakterler içerir: {\ "blah \"}, {\ "xmltest \"}. JSON ile yayınlamadan önce sadece blah veya xmltest dizesi eklenirdi. Herhangi bir fikir? Ayrıca, eşleştirilen JSON nesnesi, gönderdiğiniz xml için neye benziyordu? {"Content" ı denedim: [ {"text": "blah", "affiliate": "xmltest"} ]} – Eagledare
Gönderilen XML'yi nasıl oluşturuyorsunuz? Bu özel karakterler müşteriden geliyor gibi görünüyor. Bunu doğrulayabilir misin? Bu XML için JSON eşdeğeri {"content": {"text": "blah", "affiliate": "xmltest"}}, tıpkı yazdığınız gibi, ancak parantez içermez. – goenning