Error while parsing a JSON with angular 8 - json

I have a problem when I try to parse a JSON using angular 8; this is my code:
getBandi(){
this.http.get("myURL").subscribe((res) => {
if (JSON.stringify(res)){
var arra = res as any[];
for(let i=0;i<arra.length;i++){
console.log(arra[i]["efa6f15d-0028-45e3-b4b4-e35bff160d47"]);
}
}
}, (error) =>{
alert("Error")
});
}
and this is the structure of my jSON (actually is an array of this type):
{
"efa6f15d-0028-45e3-b4b4-e35bff160d47":{ },
"30c83720-6c74-4373-929c-4c45102c49c5":{ },
"27598461-f4cb-4c80-bff9-23aa50f12c0f":{ },
"f03897c9-d636-4bcb-95bd-fe130f26d4f3":{ },
"8808f9b5-4460-4fcb-b623-83e0ba71f315":{ },
"a158776a-7134-49f4-be57-5388c8d8e5ae":{ },
"ce654fde-2155-4c1b-9609-973a14e212ee":{ },
"c8b2a21b-2b66-4af7-8289-a37db0fdc916":{ },
"caf78a08-2f4f-4561-8c2f-49bb3fb4bc43":{ },
"d9221499-0b6f-4663-a122-1054038fc977":{ },
"5260368d-ed28-4227-a76d-773461ecce68":{ },
"a8d4dab3-94b7-49b9-9ef1-63193fe5b405":{ }
}
the problema is that when I try to log the value of this key "efa6f15d-0028-45e3-b4b4-e35bff160d47" I always get
undefined
this is the output of JSON.stringfy(res):
["{\n\t\"efa6f15d-0028-45e3-b4b4-e35bff160d47\": {\n\t\t\"0\": {\n\t\t\t\"file\": \"images\\/in_primo_piano\\/Credito_Imposta_regioni_Mezzogiorno-min.jpg\",\n\t\t\t\"title\": \"\",\n\t\t\t\"link\": \"\",\n\t\t\t\"target\": \"0\",\n\t\t\t\"rel\": \"\",\n\t\t\t\"file2\": \"\",\n\t\t\t\"overlay_effect\": \"\",\n\t\t\t\"caption\": \"\",\n\t\t\t\"width\": 758,\n\t\t\t\"height\": 428\n\t\t}\n\t},\n\t\"30c83720-6c74-4373-929c-4c45102c49c5\": {\n\t\t\"0\": {\n\t\t\t\"file\": \"images\\/headers\\/bonus_investimenti_mezzogiorno-min.jpg\",\n\t\t\t\"title\": \"\",\n\t\t\t\"file2\": \"\",\n\t\t\t\"overlay_effect\": \"\",\n\t\t\t\"caption\": \"\",\n\t\t\t\"width\": 2500,\n\t\t\t\"height\": 300\n\t\t}\n\t},\n\t\"27598461-f4cb-4c80-bff9-23aa50f12c0f\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<strong>Contributo per l\\u2019acquisto di beni strumentali<\\/strong> <strong>nuovi<\\/strong> destinati a strutture produttive ubicate <strong>nelle regioni del Mezzogiorno.<\\/strong>\"\n\t\t}\n\t},\n\t\"f03897c9-d636-4bcb-95bd-fe130f26d4f3\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<div style=\\\"text-align: justify;\\\">Le imprese che intendono fruire del credito d\\u2019imposta devono presentare una Comunicazione all\\u2019Agenzia delle Entrate.<\\/div>\\r\\n<div style=\\\"text-align: justify;\\\">L'azienda beneficiaria pu\\u00f2 utilizzare il credito d\\u2019imposta maturato <strong>solo in compensazione<\\/strong> tramite modello F24.<\\/div>\"\n\t\t}\n\t},\n\t\"8808f9b5-4460-4fcb-b623-83e0ba71f315\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<strong>Credito d\\u2019imposta spettante (in % sull\\u2019investimento effettuato):<\\/strong><br \\/><br \\/><strong><span style=\\\"text-decoration: underline;\\\">REGIONI: Campania, Puglia, Basilicata, Calabria, Sicilia, Sardegna<\\/span><\\/strong><br \\/>\\r\\n<ul>\\r\\n<li>45% per le piccole imprese<\\/li>\\r\\n<li>35% per le medie imprese<\\/li>\\r\\n<li>25% per le grandi imprese<\\/li>\\r\\n<\\/ul>\\r\\n<span style=\\\"text-decoration: underline;\\\"><strong>REGIONI: Molise e Abruzzo<\\/strong><\\/span><br \\/>\\r\\n<ul>\\r\\n<li>30% per le piccole imprese<\\/li>\\r\\n<li>20% per le medie imprese<\\/li>\\r\\n<li>10% per le grandi imprese<\\/li>\\r\\n<\\/ul>\\r\\n<strong>L\\u2019agevolazione spetta per investimenti di importo massimo pari a:<\\/strong><br \\/>\\r\\n<ul>\\r\\n<li><strong>3 milioni<\\/strong> per le piccole imprese<\\/li>\\r\\n<li><strong>10 milioni<\\/strong> per le medie imprese<\\/li>\\r\\n<li><strong>15 milioni<\\/strong> per le grandi imprese<\\/li>\\r\\n<\\/ul>\\r\\n<p>Il Credito D'imposta per gli investimenti nelle Regioni del Mezzogiorno \\u00e8 cumulabile con altre misure quali:<\\/p>\\r\\n<ul>\\r\\n<li><strong>Super-ammortamento del 140%<\\/strong> delle quote di ammortamento e canoni di locazione di beni strumentali per le operazioni effettuate fino al 30\\/06\\/2018.<\\/li>\\r\\n<li><strong>Iper-ammortamento del 250%<\\/strong> sull\\u2019acquisto di beni strumentali nuovi ad alto contenuto tecnologico per l\\u2019anno 2017.<\\/li>\\r\\n<\\/ul>\\r\\n<p><strong>Definizioni:<\\/strong><\\/p>\\r\\n<p><span style=\\\"text-decoration: underline;\\\"><strong>Piccole imprese:<\\/strong><\\/span> occupano meno di 50 persone e realizzano un fatturato annuo o un totale di bilancio annuo non superiore a 10 milioni di \\u20ac.<br \\/><strong><span style=\\\"text-decoration: underline;\\\">Medie imprese<\\/span>: <\\/strong>occupano meno di 250 persone e realizzano un fatturato annuo che non supera i 50 milioni di \\u20ac oppure hanno totale di bilancio annuo non supera i 43 milioni di \\u20ac.<\\/p>\"\n\t\t}\n\t},\n\t\"a158776a-7134-49f4-be57-5388c8d8e5ae\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<div style=\\\"text-align: justify;\\\">Il credito d'imposta pu\\u00f2 essere concesso per investimenti in <strong>beni strumentali nuovi<\\/strong> <strong>effettuati dall'1\\u00b0 gennaio 2016 e fino al 31 dicembre 2019<\\/strong> per:<\\/div>\\r\\n<ul>\\r\\n<li style=\\\"text-align: justify;\\\">\\r\\n<div>la realizzazione di un nuovo stabilimento<\\/div>\\r\\n<\\/li>\\r\\n<li style=\\\"text-align: justify;\\\">\\r\\n<div>l\\u2019ampliamento di uno stabilimento esistente<\\/div>\\r\\n<\\/li>\\r\\n<li style=\\\"text-align: justify;\\\">\\r\\n<div>la diversificazione della produzione di uno stabilimento<\\/div>\\r\\n<\\/li>\\r\\n<li style=\\\"text-align: justify;\\\">\\r\\n<div>la trasformazione radicale del processo produttivo complessivo di uno stabilimento esistente<\\/div>\\r\\n<\\/li>\\r\\n<li>\\r\\n<div style=\\\"text-align: justify;\\\">la riattivazione di uno stabilimento chiuso o che sarebbe stato chiuso qualora non fosse stato acquisito<\\/div>\\r\\n<\\/li>\\r\\n<\\/ul>\"\n\t\t}\n\t},\n\t\"ce654fde-2155-4c1b-9609-973a14e212ee\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Possono beneficiare del contributo tutte le aziende con <strong>progetti di investimento localizzati nelle regioni del Mezzogiorno:<\\/strong><br \\/>\\r\\n<ul>\\r\\n<li>Campania<\\/li>\\r\\n<li>Puglia<\\/li>\\r\\n<li>Basilicata<\\/li>\\r\\n<li>Calabria<\\/li>\\r\\n<li>Sicilia<\\/li>\\r\\n<li>Sardegna<\\/li>\\r\\n<li>Molise<\\/li>\\r\\n<li>Abruzzo<\\/li>\\r\\n<\\/ul>\"\n\t\t}\n\t},\n\t\"c8b2a21b-2b66-4af7-8289-a37db0fdc916\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"\"\n\t\t}\n\t},\n\t\"caf78a08-2f4f-4561-8c2f-49bb3fb4bc43\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Credito D'Imposta\"\n\t\t}\n\t},\n\t\"d9221499-0b6f-4663-a122-1054038fc977\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Campania, Puglia, Basilicata, Calabria, Sicilia, Sardegna, Molise, Abruzzo\"\n\t\t}\n\t},\n\t\"5260368d-ed28-4227-a76d-773461ecce68\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Tutti i Settori\"\n\t\t}\n\t},\n\t\"a8d4dab3-94b7-49b9-9ef1-63193fe5b405\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"\"\n\t\t}\n\t}\n}","{\n\t\"efa6f15d-0028-45e3-b4b4-e35bff160d47\": {\n\t\t\"0\": {\n\t\t\t\"file\": \"images\\/in_primo_piano\\/agevolazione-azienda-teaser.jpg\",\n\t\t\t\"title\": \"\",\n\t\t\t\"link\": \"\",\n\t\t\t\"target\": \"0\",\n\t\t\t\"rel\": \"\",\n\t\t\t\"file2\": \"\",\n\t\t\t\"overlay_effect\": \"\",\n\t\t\t\"caption\": \"\",\n\t\t\t\"width\": 600,\n\t\t\t\"height\": 300\n\t\t}\n\t},\n\t\"30c83720-6c74-4373-929c-4c45102c49c5\": {\n\t\t\"0\": {\n\t\t\t\"file\": \"images\\/in_primo_piano\\/agevolazione-aziende-full.jpg\",\n\t\t\t\"title\": \"\",\n\t\t\t\"file2\": \"\",\n\t\t\t\"overlay_effect\": \"\",\n\t\t\t\"caption\": \"\",\n\t\t\t\"width\": 2500,\n\t\t\t\"height\": 300\n\t\t}\n\t},\n\t\"27598461-f4cb-4c80-bff9-23aa50f12c0f\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<strong>CONTRIBUTO PER INNOVAZIONE TECNOLOGICA E SVILUPPO NUOVI PRODOTTI E SERVIZI,<span style=\\\"color: #993366;\\\"> FINO A 20 MILIONI DI EURO ALL'ANNO,<\\/span> IMMEDIATAMENTE FRUIBILE DA TUTTE LE AZIENDE per le annualit\\u00e0 2015-2020<br \\/><\\/strong>\"\n\t\t}\n\t},\n\t\"f03897c9-d636-4bcb-95bd-fe130f26d4f3\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Il credito d\\u2019imposta dovr\\u00e0 essere indicato nella dichiarazione dei redditi relativa al periodo d\\u2019imposta di sostenimento dei costi agevolati.\"\n\t\t}\n\t},\n\t\"8808f9b5-4460-4fcb-b623-83e0ba71f315\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<p>Il contributo, sotto forma di credito d'imposta, spetta nell\\u2019importo <strong>massimo annuale di 20.000.000 \\u20ac<\\/strong> per ciascuna annualit\\u00e0<strong> dal 2015 al 2020<\\/strong> per spese sostenute inerenti attivit\\u00e0 di sviluppo, innovazione tecnologica, progettazione e ricerca.<\\/p>\\r\\n<p>Le imprese possono <strong>recuperare fino al 50% delle spese<\\/strong> sostenute per progetti di ricerca e sviluppo.<\\/p>\\r\\n<ul>\\r\\n<li>50 % della spesa incrementale relativa al personale altamente qualificato e alla ricerca commissionata a terzi;<\\/li>\\r\\n<li>25 % della spesa incrementale delle quote di ammortamento degli strumenti e attrezzature nonch\\u00e9 di quella relativa a competenze e personale tecnico.<\\/li>\\r\\n<\\/ul>\\r\\n<p>Il credito di imposta per attivit\\u00e0 di ricerca e sviluppo deve ritenersi fruibile <strong>anche in presenza di altre misure di favore<\\/strong>, salvo che le norme disciplinanti le altre misure non dispongano diversamente.<\\/p>\"\n\t\t}\n\t},\n\t\"a158776a-7134-49f4-be57-5388c8d8e5ae\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<p>Sono ammissibili tutte le spese relative ad attivit\\u00e0 di <strong>ricerca e sviluppo di nuovi prodotti, progetti sperimentali, processi innovativi e ricerca industriale.<\\/strong><\\/p>\\r\\n<p>In particolare:<\\/p>\\r\\n<ul>\\r\\n<li>la ricerca pianificata, gli studi di fattibilit\\u00e0 e i lavori sperimentali mirati a mettere a punto nuovi prodotti, processi e servizi, o per permettere un miglioramento di quelli gi\\u00e0 prodotti dall\\u2019Impresa;<\\/li>\\r\\n<li>lo sviluppo di piani, progetti o disegni per prodotti, processi o servizi nuovi, modificati, o migliorati;<\\/li>\\r\\n<li>la produzione e il collaudo di nuovi prodotti, processi e servizi<\\/li>\\r\\n<li>progettazione software, multimediale e componentistica digitale;<\\/li>\\r\\n<li>misure, calcolo, certificazioni di prodotto;<\\/li>\\r\\n<\\/ul>\"\n\t\t}\n\t},\n\t\"ce654fde-2155-4c1b-9609-973a14e212ee\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<p><strong>Tutte le aziende italiane<\\/strong>, comprese le grandi imprese e quelle neo-costituite, possono fruire dell'agevolazione sotto forma di credito d'imposta.<\\/p>\"\n\t\t}\n\t},\n\t\"c8b2a21b-2b66-4af7-8289-a37db0fdc916\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"\"\n\t\t}\n\t},\n\t\"caf78a08-2f4f-4561-8c2f-49bb3fb4bc43\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Credito d'Imposta\"\n\t\t}\n\t},\n\t\"d9221499-0b6f-4663-a122-1054038fc977\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Tutte le Regioni\"\n\t\t}\n\t},\n\t\"5260368d-ed28-4227-a76d-773461ecce68\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Tutti\"\n\t\t}\n\t},\n\t\"a8d4dab3-94b7-49b9-9ef1-63193fe5b405\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"2020-12-31 00:00:00\"\n\t\t}\n\t}\n}"," {\n\t\"efa6f15d-0028-45e3-b4b4-e35bff160d47\": {\n\t\t\"0\": {\n\t\t\t\"file\": \"images\\/in_primo_piano\\/patent_box_regime_di_tassazione_agevolata_per_beni_materiali_ed_immateriali.jpg\",\n\t\t\t\"title\": \"\",\n\t\t\t\"link\": \"\",\n\t\t\t\"target\": \"0\",\n\t\t\t\"rel\": \"\",\n\t\t\t\"file2\": \"\",\n\t\t\t\"overlay_effect\": \"\",\n\t\t\t\"caption\": \"\",\n\t\t\t\"width\": 758,\n\t\t\t\"height\": 428\n\t\t}\n\t},\n\t\"30c83720-6c74-4373-929c-4c45102c49c5\": {\n\t\t\"0\": {\n\t\t\t\"file\": \"images\\/headers\\/patent_box_come_funziona.jpg\",\n\t\t\t\"title\": \"\",\n\t\t\t\"file2\": \"\",\n\t\t\t\"overlay_effect\": \"\",\n\t\t\t\"caption\": \"\",\n\t\t\t\"width\": 2500,\n\t\t\t\"height\": 300\n\t\t}\n\t},\n\t\"27598461-f4cb-4c80-bff9-23aa50f12c0f\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<strong>Patent Box<\\/strong> - <strong>Regime opzionale di tassazione agevolata<\\/strong> per i redditi derivanti dall\\u2019utilizzo diretto o indiretto di alcuni beni immateriali agevolabili.\"\n\t\t}\n\t},\n\t\"f03897c9-d636-4bcb-95bd-fe130f26d4f3\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<div style=\\\"text-align: justify;\\\">I soggetti interessati possono comunicare in via telematica l\\u2019opzione di adesione al regime di tassazione agevolata Patent Box all'Agenzia delle Entrate, compilando l\\u2019apposito modello per il periodo di imposta 2016.<\\/div>\"\n\t\t}\n\t},\n\t\"8808f9b5-4460-4fcb-b623-83e0ba71f315\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<div style=\\\"text-align: justify;\\\">L\\u2019incentivo consiste in una<strong> riduzione del reddito d\\u2019impresa<\\/strong> (base imponibile) <strong>soggetta ad imposte sul reddito (IRPEF e IRES) ed a IRAP.<\\/strong><\\/div>\\r\\n<p style=\\\"text-align: justify;\\\">La variazione in diminuzione del reddito imponibile <strong>\\u00e8 pari ad una percentuale del \\u201creddito agevolabile\\u201d (40% per il 2016 e 50% nei periodi successivi)<\\/strong>: il reddito agevolabile \\u00e8 calcolato mediante apposite formule e software specifico, per ciascun bene immateriale, applicando al reddito prodotto dallo sfruttamento del bene immateriale il risultato del rapporto tra i costi di ricerca e sviluppo sostenuti per il mantenimento, l\\u2019accrescimento e lo sviluppo del bene immateriale ed i costi complessivi sostenuti per il mantenimento, l\\u2019accrescimento e lo sviluppo del bene.<\\/p>\\r\\n<p style=\\\"text-align: justify;\\\"><span style=\\\"text-decoration: underline;\\\"><strong>L'agevolazione \\u00e8 cumulabile con altri regimi di aiuto attualmente in vigore, in particolare con gli incentivi alle startup e con il credito d'imposta per ricerca e sviluppo.<\\/strong><\\/span><\\/p>\"\n\t\t}\n\t},\n\t\"a158776a-7134-49f4-be57-5388c8d8e5ae\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<p style=\\\"text-align: justify;\\\">Sono ammissibili le <strong>spese legate ad attivit\\u00e0 di ricerca e sviluppo finalizzate allo sviluppo, al mantenimento, nonch\\u00e9 all\\u2019accrescimento di valore di software protetto da copyright, brevetti industriali, disegni e i modelli giuridicamente tutelabili e know-how<\\/strong> che si concretizza in un bene giuridicamente tutelabile.<\\/p>\\r\\n<p style=\\\"text-align: justify;\\\">Il beneficio compete non solo per gli intangibles sviluppati internamente dal contribuente, ma anche per <strong>quelli acquisiti presso terzi,<\\/strong> a condizione che l\\u2019impresa beneficiaria svolga su di essi attivit\\u00e0 di mantenimento, accrescimento e sviluppo. Il meccanismo di determinazione dell\\u2019agevolazione \\u00e8, ovviamente, tanto pi\\u00f9 premiante quanto maggiore \\u00e8 l\\u2019attivit\\u00e0 direttamente esercitata nella creazione e sviluppo dei beni tutelabili.<\\/p>\"\n\t\t}\n\t},\n\t\"ce654fde-2155-4c1b-9609-973a14e212ee\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<div style=\\\"text-align: justify;\\\">Possono fruire della tassazione agevolata le<strong> imprese residenti nel territorio italiano<\\/strong>. Non ci sono limitazioni alla forma giuridica e dunque possono accedere le societ\\u00e0 di capitali e la societ\\u00e0 di persona, le imprese individuali e gli enti commerciali.<\\/div>\\r\\n<p style=\\\"text-align: justify;\\\">Sono escluse le imprese assoggettate a procedure di fallimento, liquidazione coatta amministrativa e amministrazione straordinaria.<\\/p>\"\n\t\t}\n\t},\n\t\"c8b2a21b-2b66-4af7-8289-a37db0fdc916\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"\"\n\t\t}\n\t},\n\t\"caf78a08-2f4f-4561-8c2f-49bb3fb4bc43\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Tassazione Agevolata\"\n\t\t}\n\t},\n\t\"d9221499-0b6f-4663-a122-1054038fc977\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Nazionale\"\n\t\t}\n\t},\n\t\"5260368d-ed28-4227-a76d-773461ecce68\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Tutti\"\n\t\t}\n\t},\n\t\"a8d4dab3-94b7-49b9-9ef1-63193fe5b405\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"\"\n\t\t}\n\t}\n}"," {\n\t\"efa6f15d-0028-45e3-b4b4-e35bff160d47\": {\n\t\t\"0\": {\n\t\t\t\"file\": \"images\\/in_primo_piano\\/iperammortamento_industria_4.0-min.jpg\",\n\t\t\t\"title\": \"\",\n\t\t\t\"link\": \"\",\n\t\t\t\"target\": \"0\",\n\t\t\t\"rel\": \"\",\n\t\t\t\"file2\": \"\",\n\t\t\t\"overlay_effect\": \"\",\n\t\t\t\"caption\": \"\",\n\t\t\t\"width\": 758,\n\t\t\t\"height\": 428\n\t\t}\n\t},\n\t\"30c83720-6c74-4373-929c-4c45102c49c5\": {\n\t\t\"0\": {\n\t\t\t\"file\": \"images\\/headers\\/superammortamento_e_iperammortamento_1.jpg\",\n\t\t\t\"title\": \"\",\n\t\t\t\"file2\": \"\",\n\t\t\t\"overlay_effect\": \"\",\n\t\t\t\"caption\": \"\",\n\t\t\t\"width\": 2500,\n\t\t\t\"height\": 300\n\t\t}\n\t},\n\t\"27598461-f4cb-4c80-bff9-23aa50f12c0f\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"La Legge di Bilancio 2017 ha prorogato il super ammortamento, ossia la maggiorazione del 40% del costo fiscalmente riconosciuto dei <strong>beni strumentali nuovi<\\/strong>, ed ha introdotto<strong> l\\u2019iper ammortamento<\\/strong>, ossia una <strong>maggiorazione del 150% del costo di acquisizione di particolari tipologie di beni funzionali alla trasformazione tecnologica e\\/o digitale delle imprese in chiave Industria 4.0.<\\/strong>\"\n\t\t}\n\t},\n\t\"f03897c9-d636-4bcb-95bd-fe130f26d4f3\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"\"\n\t\t}\n\t},\n\t\"8808f9b5-4460-4fcb-b623-83e0ba71f315\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Il beneficio si traduce in un<strong> incremento del costo di acquisizione del bene del 40% o del 150%<\\/strong>, che determina un <strong>aumento della quota annua di ammortamento<\\/strong> (o del canone annuo di leasing) <strong>fiscalmente deducibile.<\\/strong>\"\n\t\t}\n\t},\n\t\"a158776a-7134-49f4-be57-5388c8d8e5ae\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<strong>IPERAMMORTAMENTO<\\/strong><br \\/><br \\/>La <strong>maggiorazione del 150%<\\/strong> si applica per <strong>investimenti effettuati dal 1\\u00b0 gennaio 2017 al 31 dicembre 2017<\\/strong> (o entro il 30 settembre 2018, ma solo a condizione che entro il 31 dicembre 2017 l\\u2019ordine risulti accettato dal venditore e sia stato effettuato il pagamento in acconti in misura pari ad almeno il 20% del costo di acquisizione).<br \\/><br \\/>Sono agevolabili gli investimenti in macchine intelligenti, interconnesse, che possono essere raggruppati in tre categorie:<br \\/>\\r\\n<ul>\\r\\n<li>beni strumentali il cui funzionamento \\u00e8 controllato da sistemi computerizzati o gestito tramite opportuni sensori e azionamenti;<\\/li>\\r\\n<li>sistemi per l\\u2019assicurazione della qualit\\u00e0 e della sostenibilit\\u00e0;<\\/li>\\r\\n<li>dispositivi per l\\u2019interazione uomo macchina e per il miglioramento dell\\u2019ergonomia e della sicurezza del posto di lavoro in logica \\\"4.0\\\".<\\/li>\\r\\n<\\/ul>\\r\\n<p><strong>SUPERAMMORTAMENTO BENI IMMATERIALI<\\/strong><br \\/><br \\/>Sono agevolabili gli <strong>investimenti in beni immateriali<\\/strong> (software, sistemi e system integration, piattaforme e applicazioni) <strong>connessi a investimenti in beni materiali \\u00abIndustria 4.0\\u00bb.<\\/strong><\\/p>\\r\\n<p>Il beneficio \\u00e8 cumulabile con:<\\/p>\\r\\n<ul>\\r\\n<li>Nuova Sabatini<\\/li>\\r\\n<li>Credito d\\u2019imposta per attivit\\u00e0 di Ricerca e Sviluppo<\\/li>\\r\\n<li>Patent Box<\\/li>\\r\\n<li>Incentivi alla patrimonializzazione delle imprese (ACE)<\\/li>\\r\\n<li>Incentivi agli investimenti in Start up e PMI innovative<\\/li>\\r\\n<li>Fondo Centrale di Garanzia<\\/li>\\r\\n<\\/ul>\"\n\t\t}\n\t},\n\t\"ce654fde-2155-4c1b-9609-973a14e212ee\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<p><strong>IPERAMMORTAMENTO<\\/strong><br \\/><br \\/>Sono ammessi all\\u2019agevolazione unicamente <strong>i titolari di reddito d\\u2019impresa, indipendentemente dalla natura giuridica, dalla dimensione aziendale e dal settore economico in cui operano.<\\/strong><\\/p>\\r\\n<p>Sono ammesse all\\u2019agevolazione <strong>sia le imprese residenti nel territorio dello Stato che le stabili organizzazioni nel territorio dello Stato di soggetti non residenti.<\\/strong> Sono ammessi gli enti non commerciali con riferimento all\\u2019attivit\\u00e0 commerciale eventualmente esercitata.<br \\/><br \\/><strong>SUPERAMMORTAMENTO BENI IMMATERIALI<\\/strong><\\/p>\\r\\n<p>Per i <strong>soggetti imprenditoriali che beneficiano di iperammortamento<\\/strong> \\u00e8 possibile dedurre dall\\u2019imponibile un ammontare<strong> pari al 140%<\\/strong> (come nel caso del super ammortamento) del costo di acquisizione di alcuni beni immateriali specificamente individuati dal legislatore. Le scadenze temporali sono le medesime previste per l\\u2019iperammortamento.<\\/p>\"\n\t\t}\n\t},\n\t\"c8b2a21b-2b66-4af7-8289-a37db0fdc916\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"\"\n\t\t}\n\t},\n\t\"caf78a08-2f4f-4561-8c2f-49bb3fb4bc43\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Deduzione IRES \\/ IRPEF\"\n\t\t}\n\t},\n\t\"d9221499-0b6f-4663-a122-1054038fc977\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Tutte le Regioni\"\n\t\t}\n\t},\n\t\"5260368d-ed28-4227-a76d-773461ecce68\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Tutti\"\n\t\t}\n\t},\n\t\"a8d4dab3-94b7-49b9-9ef1-63193fe5b405\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"2018-09-30 00:00:00\"\n\t\t}\n\t}\n}","{\n\t\"efa6f15d-0028-45e3-b4b4-e35bff160d47\": {\n\t\t\"0\": {\n\t\t\t\"file\": \"images\\/in_primo_piano\\/bando_emilia_romagna_fiere_estero-min_1.jpg\",\n\t\t\t\"title\": \"\",\n\t\t\t\"link\": \"\",\n\t\t\t\"target\": \"0\",\n\t\t\t\"rel\": \"\",\n\t\t\t\"file2\": \"\",\n\t\t\t\"overlay_effect\": \"\",\n\t\t\t\"caption\": \"\",\n\t\t\t\"width\": 758,\n\t\t\t\"height\": 428\n\t\t}\n\t},\n\t\"30c83720-6c74-4373-929c-4c45102c49c5\": {\n\t\t\"0\": {\n\t\t\t\"file\": \"images\\/headers\\/header_formazione_4.0-min.jpg\",\n\t\t\t\"title\": \"\",\n\t\t\t\"file2\": \"\",\n\t\t\t\"overlay_effect\": \"\",\n\t\t\t\"caption\": \"\",\n\t\t\t\"width\": 2500,\n\t\t\t\"height\": 300\n\t\t}\n\t},\n\t\"27598461-f4cb-4c80-bff9-23aa50f12c0f\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<strong>Credito d'imposta a favore di tutte le imprese, per attivit\\u00e0 di formazione dirette ad acquisire e consolidare le conoscenze tecnologiche \\u00abIndustria 4.0\\u00bb.<\\/strong>\"\n\t\t}\n\t},\n\t\"f03897c9-d636-4bcb-95bd-fe130f26d4f3\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Il credito d\\u2019imposta sar\\u00e0 utilizzabile<strong> esclusivamente in compensazione<\\/strong> a decorrere dal periodo d\\u2019imposta successivo a quello in cui i costi sono sostenuti, presentando il modello F24 esclusivamente attraverso i servizi telematici messi a disposizione dall\\u2019Agenzia delle Entrate.\"\n\t\t}\n\t},\n\t\"8808f9b5-4460-4fcb-b623-83e0ba71f315\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"ll bonus \\u00e8 attributo nella <strong>misura del 40% delle spese ammissibili,<\\/strong> con un <strong>massimo di 300.000 euro<\\/strong> per ciascuna impresa beneficiaria.\"\n\t\t}\n\t},\n\t\"a158776a-7134-49f4-be57-5388c8d8e5ae\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"<p><span class=\\\"oe_form_text_content\\\">Sono ammissibili al credito d\\u2019imposta le attivit\\u00e0 di formazione finalizzate all\\u2019acquisizione o al consolidamento, da parte del personale dipendente dell\\u2019impresa, delle competenze nelle tecnologie rilevanti per la realizzazione del processo di trasformazione tecnologica e digitale delle imprese previsto dal \\u201cPiano nazionale Impresa 4.0\\u201d. <\\/span><\\/p>\\r\\n<p><span class=\\\"oe_form_text_content\\\">Costituiscono in particolare attivit\\u00e0 ammissibili al credito d\\u2019imposta le attivit\\u00e0 di formazione concernenti le seguenti tecnologie: <\\/span><\\/p>\\r\\n<ul>\\r\\n<li><span class=\\\"oe_form_text_content\\\">big data e analisi dei dati; <\\/span><\\/li>\\r\\n<li><span class=\\\"oe_form_text_content\\\">cloud e fog computing; <\\/span><\\/li>\\r\\n<li><span class=\\\"oe_form_text_content\\\">cyber security; <\\/span><\\/li>\\r\\n<li><span class=\\\"oe_form_text_content\\\">simulazione e sistemi cyber-fisici; <\\/span><\\/li>\\r\\n<li><span class=\\\"oe_form_text_content\\\">prototipazione rapida; <\\/span><\\/li>\\r\\n<li><span class=\\\"oe_form_text_content\\\">sistemi di visualizzazione, realt\\u00e0 virtuale e realt\\u00e0 aumentata; <\\/span><\\/li>\\r\\n<li><span class=\\\"oe_form_text_content\\\">robotica avanzata e collaborativa; <\\/span><\\/li>\\r\\n<li><span class=\\\"oe_form_text_content\\\">interfaccia uomo macchina; <\\/span><\\/li>\\r\\n<li><span class=\\\"oe_form_text_content\\\">manifattura additiva (o stampa tridimensionale); <\\/span><\\/li>\\r\\n<li><span class=\\\"oe_form_text_content\\\">internet delle cose e delle macchine; <\\/span><\\/li>\\r\\n<li><span class=\\\"oe_form_text_content\\\">integrazione digitale dei processi aziendali.<\\/span><\\/li>\\r\\n<\\/ul>\"\n\t\t}\n\t},\n\t\"ce654fde-2155-4c1b-9609-973a14e212ee\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Possono accedere al credito d\\u2019imposta:<br \\/>\\r\\n<ul>\\r\\n<li>Imprese residenti in Italia, indipendentemente dalla natura giuridica, dal settore economico di appartenenza, dalla dimensione, dal regime contabile e dal sistema di determinazione del reddito ai fini fiscali.<\\/li>\\r\\n<li>Enti non commerciali residenti svolgenti attivit\\u00e0 commerciali rilevanti ai fini del reddito d'impresa.<\\/li>\\r\\n<li>Imprese residenti all'estero con stabili organizzazioni sul territorio italiano.<\\/li>\\r\\n<\\/ul>\"\n\t\t}\n\t},\n\t\"c8b2a21b-2b66-4af7-8289-a37db0fdc916\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"\"\n\t\t}\n\t},\n\t\"caf78a08-2f4f-4561-8c2f-49bb3fb4bc43\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Credito D'Imposta\"\n\t\t}\n\t},\n\t\"d9221499-0b6f-4663-a122-1054038fc977\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Tutte le Regioni\"\n\t\t}\n\t},\n\t\"5260368d-ed28-4227-a76d-773461ecce68\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Tutti i Settori\"\n\t\t}\n\t},\n\t\"a8d4dab3-94b7-49b9-9ef1-63193fe5b405\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"\"\n\t\t}\n\t}\n}"]

Under EcmaScript 5, you can use Object.entries and create an array of keys and its values to iterate like you want in your question:
var words = {
"efa6f15d-0028-45e3-b4b4-e35bff160d47":{ id: 1 },
"30c83720-6c74-4373-929c-4c45102c49c5":{ },
"27598461-f4cb-4c80-bff9-23aa50f12c0f":{ },
"f03897c9-d636-4bcb-95bd-fe130f26d4f3":{ },
"8808f9b5-4460-4fcb-b623-83e0ba71f315":{ },
"a158776a-7134-49f4-be57-5388c8d8e5ae":{ },
"ce654fde-2155-4c1b-9609-973a14e212ee":{ },
"c8b2a21b-2b66-4af7-8289-a37db0fdc916":{ },
"caf78a08-2f4f-4561-8c2f-49bb3fb4bc43":{ },
"d9221499-0b6f-4663-a122-1054038fc977":{ },
"5260368d-ed28-4227-a76d-773461ecce68":{ },
"a8d4dab3-94b7-49b9-9ef1-63193fe5b405":{ }
};
const result = Object.keys(words)
.map(key => {
let obj = {};
obj[key] = words[key];
return obj;
});
console.log(result);
UPDATE:
You have an object, not array. So this code arra.length will have value undefined because this code res as any[] does not creates an array. It is just tries to cast your object to array. So try to use the above code to create an array.
So you should iterate your object using for - in loop and your code can look like this:
for (let key in words) {
if (words.hasOwnProperty(key)) {
console.log(`The key of object is ${ key }, the value of object is:`, words[key]);
}
}

Related

How to encode small caps for abbreviations using CSS if the font doesn't support this option?

I have a product named with an acronym and the name of the product is repeated many times on the page.
In Spanish, typographic style rules suggest using acronyms in small-caps, but the font I have does not provide the small-caps option.
What is the best way to code a simulation of small-caps in this case?
#import url('https://fonts.googleapis.com/css2?family=Nunito:wght#400;600;700;800&display=swap');
h1,p{font-family: Nunito;}
h1{font-size: 2em;
font-weight: 600;}
p{font-size: 1em;}
<h1>Cual es el mejor <abbr>SOAP</abbr> para bañar a tu perro</h1>
<p>Bañar a tu perro con <abbr>SOAP</abbr> no debería ser difícil. Sin embargo, es posible que el <abbr>SOAP</abbr> que consigas huela a gato, con lo cual afectes seriamente la personalidad de tu mascota. Es necesario probar el <abbr>SOAP</abbr> que vas a usar sobre tu perro en una persona antes de aplicárselo, asegurándote de que el <abbr>SOAP</abbr> no atraiga otras alimañas. Sigue a la persona a la que engañaste al cambiarle el <abbr>SOAP</abbr> y anota su interacción con otras formas de vida<p>
This is a good solution in any context given a font with enough font-weight options.
#import url('https://fonts.googleapis.com/css2?family=Nunito:wght#300;400;600;700;800&display=swap');
h1,p{font-family: Nunito;}
h1{font-size: 2em;
font-weight: 700;}
p{font-size: 1em;
font-weight:300}
abbr{
font-size: 1.5ex;
font-weight: bolder;
}
<h1>Cual es el mejor <abbr>SOAP</abbr> para bañar a tu perro</h1>
<p>Bañar a tu perro con <abbr>SOAP</abbr> no debería ser difícil. Sin embargo, es posible que el <abbr>SOAP</abbr> que consigas huela a gato, con lo cual afectes seriamente la personalidad de tu mascota. Es necesario probar el <abbr>SOAP</abbr> que vas a usar sobre tu perro en una persona antes de aplicárselo, asegurándote de que el <abbr>SOAP</abbr> no atraiga otras alimañas. Sigue a la persona a la que engañaste al cambiarle el <abbr>SOAP</abbr> y anota su interacción con otras formas de vida<p>

anchor links doesen't link to url

can anyone help me figure out what's wrong with the code? links not working, if you click on it nothing happens. I thought I left some tags open but I checked with https://validator.w3.org and there are no such errors! What could be the problem?
I have seen the other questions and answers related to this topic but they did not help me.
note: navigate to "i miei lavori" page or "my work" page
link:
minimal reproducible example
html
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<meta name="viewport" content="width=device-width">
<title>i miei lavori - Andrea</title>
</head>
<body>
<div class="specchietto-menu">
<button class="pulsanti-menu" name="btnchisono" onclick="chisonoPage()">chi sono</button>
<button class="pulsanti-menu" style="color:blue;" name="btnlavori" onclick="lavoriPage()">i miei lavori</button>
<button class="pulsanti-menu" name="btncuriosita" onclick="curiositaPage()">curiosità</button>
</div>
<div class="choose-language">
<button class="btn-language" onclick="changeLanguage()"><img src="images/english-language.jpg" alt=""></button>
</div>
<br>
<div class="scrollTop"><i class="fa fa-angle-double-up" style="font-size:36px"></i></div>
<div class="contenitore">
<p class="presentazione-lavori">Lavori svolti per svago anni fà</p>
<br>
<div class="specchietto-articolo">
<!-- Firewall", un trojan per mIRC -->
<p class="titolo-articolo">"Firewall", un trojan per mIRC</p>
<p class="articolo"><img src="images/mirc-logo-mini.jpg" style="float:left;">Correva l'anno 2000, avevo da poco avuto accesso a internet, avevo una connessione 56k flat 12/24 con Libero#Sogno, ero affascinato da alcuni degli script di mIRC, il celebre programma di chat, molto gettonato in rete in quegli anni e ne provai alcuni, così per curiosità mi misi a leggere il codice sorgente degli script ".ini", fu così che iniziò il mio viaggio nel mondo della programmazione.
</p>
<p class="articolo">La mia prima creazione fù un trojan che chiamai "firewall", per ovvie ragioni di ingegneria sociale di cui parlerò più avanti. Il Trojan era composto da uno script che era caricato nel mio client, che inviava i comandi da eseguire sul client della vittima che avrebbe dovuto caricare lo script malevolo sul proprio mIRC ma le fondamenta del trojan era la direttiva "onNotice", un evento che veniva generato quando si riceveva un messaggio particolare, il notice appunto. Di default questi messaggi erano nascosti, il client li riceveva, li elaborava ma l'utente era ignaro di averlo ricevuto, per questo motivo lo scelsi. Lo script che era caricato nel mio client mIRC non faceva altro che inviare un "notice" criptato alla vittima, bastava aprire un canale privato con l'utente target per avere accesso alle funzioni.
</p>
<p class="articolo">C'erano funzioni standard per cambiare nick alla vittima, scrivere messaggi al suo posto e disconnetterla dal server con messaggi particolari, di solito quando c'era una disconnessione del client appariva un messaggio di questo genere "connection reset by peer", al posto di "peer" erano disponibili vari nomi tra cui Babbo Natale(connection reset by Babbo Natale), divertente!. Potevo scrivere messaggi su canali e chat private al posto del malcapitato e potevo cambiarli nick ma la feature più potente era poter eseguire qualsiasi direttiva sulla macchina vittima. La cosa più difficile di questo sistema era convincere la vittima a caricare lo script sul proprio client, da qui il nome che ho scelto per il trojan, "Firewall", c'era molta ignoranza informatica in quegli anni ma molti degli internauti sapeva cosa era un firewall e lo avrebbe caricato più facilmente.
</p>
<p class="articolo">Detto questo ci fù solo una vittima di questo trojan, un mio amico di chat che si fidò ciecamente di me e lo convissi molto facilmente a installare "Firewall". Tuttavia il divertimento durò poco, li cambiai nick un paio di volte, scrissi qualche parolaccia, feci coming-out al posto suo su dei canali pubblici e lo disconnettei diverse volte ma ero così orgoglioso del mio lavoro che per vantarmi li dissi tutto e subito e così dandomi della merda disinstallò lo scrip. Rimane ad oggi l'unica vittima di Firewall. Condividerei il codice sorgente ma è andato perduto negli anni.
</p>
<p style="font-size:80%;">Windows 98, mIRC scripting</p>
<!-- Convertitore da .wav a .mp3 -->
<br>
<p class="titolo-articolo">Convertitore da .wav a .mp3</p>
<p class="articolo"><img src="images/mp3-mini.jpg" style="float:left">Erano i primi anni 2000, avevo circa 16/17 anni ed era consuetudine rivoltare i CD musicali nel computer per poter creare le proprie playlist. Windows Media Player in quegli anni creava file wav quando si eseguivano queste operazioni e si sa che il formato wav è molto pesante rispetto agli mp3 e gli HD non erano molto capienti. Così sentii la necessità di un convertitore, cercai in internet e trovai una libreria per convertire, aprii il mio VB6 con cui smanettavo da poco tempo e scrissi qualche linea di codice. Il programma prevedeva una navigazione nelle cartelle di sistema per scegliere quali file convertire, una volta selezionati si avviava la conversione e venivano creati i files mp3 con gli stessi nomi degli originali. È stato veramente semplice utilizzare la libreria, bastava impostare alcune configurazioni e richiamare la funzione di conversione con i dovuti parametri.
</p>
<p style="font-size:80%;">Windows ME, Visual Basic 6</p>
<!-- Sondaggio scolastico -->
<br>
<p class="titolo-articolo">Sondaggio scolastico</p>
<p class="articolo"><img src="images/sondaggio-mini.jpg" style="float:left">Frequentavo il II anno del Liceo Scientifico del mio paese, il Preside aveva fatto distribuire dei fogli che avrebbero costituito un sondaggio ma non ricordo i temi trattati. Era complicato analizzare i dati delle risposte di tutti gli alunni a mano così mi chiese se potevo scrivere un programma che raccogliesse i dati e li elaborasse.
</p>
<p class="articolo">Allora non ero a conoscenza dell'esistenza di SQL ne sapevo a cosa servisse Access di Microsoft così mi venne in mente di immagazzinare i dati nelle celle dei fogli Excel, usai le librerie di Visual Basic 6 per accedere ai fogli di calcolo, MSDN era la mia fonte principale di informazione per sviluppare.
</p>
<p class="articolo">Mi divertii molto a creare questa applicazione, credevo che avrei ricevuto dei compensi scolastici, crediti formativi o un'incremento dei voti in matematica(in cui andavo già bene) ma l'unica cosa che ricevetti è stato l'incremento della mia esperienza(ben venga sempre) e un grazie dal Preside.
</p>
<p style="font-size:80%;">Windows XP, Visual Basic 6, Excel</p>
<!-- Formattatore files .csv -->
<br>
<p class="titolo-articolo">Formattatore files .csv</p>
<p class="articolo"><img src="images/csvicon-mini.jpg" style="float:left">È stato molto semplice sviluppare questa applicazione. Avevo bisogno di formattare dei files csv composti da tantissime righe, era impossibile farlo a mano così lessi qualche tutorial del C++ e da lì a poco mi misi a scrivere righe di codice. Leggendo i tutorial riuscii a capire anche i puntatori e feci qualche applicazione che li utilizzava ma era per solo scopo didattico. Ora per essere sincero non ricordo quasi nulla di questo fantastico linguaggio dal momento che è stata la prima e l'ultima volta che lo utilizzai.
</p>
<p style="font-size:80%;">GNU Linux Debian, C++</p>
<!-- Indicatori su piattaforma di trading -->
<br>
<p class="titolo-articolo">Indicatori su piattaforma di trading</p>
<p class="articolo"><img src="images/metatrader4icon-small.jpg" style="float:left">Negli anni 2012/2013 circa mi accanii nel trading online e utilizzavo la piattaforma Metatrader4, ore e ore di studio di molta analisi tecnica. Una volta acquisite le conoscenze cercai di supplire alla mancanza di indicatori per il volume di scambi nel forex e non solo. Di indicatori ed oscillatori ce ne erano molti ma mi accorsi che mancava qualcosa e mi misi a lavoro. Sinceramente ora non ricordo bene cosa facessero questi indicatori, nel codice sorgente di alcuni di essi c'è una valore Delta che non ricordo proprio cosa sia. Comunque questi indicatori come già detto misuravano il volume di scambi e quindi un bilanciamento tra domanda e offerta e ce ne sono alcuni che mi servivano per gestire il money management. Di questi ho il codice sorgente, perdonatemi se qualche file risulta poco leggibile ma quando l'ho scritto dovevo programmare da un decennio circa.</p>
<br>VSA CumulativeDelta 0.1.mq4
<br>VSA PriceDelta Correlation v.0.1.mq4
<br>VSA PriceVolume Correlation v.0.4.mq4
<br>VSA Volume Percentage v.1.5.mq4
<br> MM RiskControl v2.1.mq4
<p style="font-size:80%;">Windows XP, MetaTrader4 Language</p>
<!-- Alla ricerca dell'olio essenziale -->
<br>
<p class="titolo-articolo">Alla ricerca dell'olio essenziale</p>
<p class="articolo"><img src="images/olioessenziale-mini.jpg" style="float:left">Avevo acquistato da poco una enciclopedia degli olii essenziali, ancora la possiedo, è ben fatta, ci sono descrizioni dettagliate di molti olii, nelle descrizioni ci sono le proprietà e gli antichi usi nella erboristeria popolare e molte altre informazioni, inoltre ci sono delle sezioni in cui puoi ricercare l'olio essenziale per proprietà, ad esempio se cerchi la voce antinfiammatorio puoi trovare nell'elenco l'olio di eucalipto. Perchè non portare in digitale questo sistema e magari migliorarlo anche?
</p>
<p class="articolo">Così mi misi a lavoro, scelsi Gambas per sviluppare l'applicazione, aveva tutte le caratteristiche di cui avevo bisogno, e come database mi sono appoggiato a mySQL. Oltre che un'interfaccia per inserire gli olii e le loro proprietà c'era la parte più importante dell applicazione che consisteva nell'inserire una o più proprietà nella barra di ricerca. Così venivano fuori per primi gli olii che possedevano tutte quelle proprietà, mentre secondariamente erano elencati gli olii che possedevano solo alcune delle proprietà cercate.
</p>
<p class="articolo">Tra le svariate reinstallazioni, backup incompleti e pc bruciati l'applicazione è andata perduta, mi sarebbe piaciuto poterla condividere in rete.
</p>
<p style="font-size:80%;">GNU Linux Debian, Gambas</p>
<br>
<p class="presentazione-lavori">Lavori svolti recentemente con Angular</p>
<!-- NGRX Store Demo -->
<br>
<p class="titolo-articolo">NGRX Store Demo</p>
<p class="articolo"><img src="images/logo-ngrx.jpg" style="float:left;">Questa demo mostra il funzionamento basilare di ngrx, cioè mostra l’uso di actions, reducers e selector. Inserendo i dati nel form viene aggiornato l’utente nello store.</p>
github
stackblitz
<br><br><p style="font-size:80%;">GNU Linux Debian 10, TypeScript, Angular, NGRX</p>
<!-- NGRX Entity Demo -->
<br>
<p class="titolo-articolo">NGRX Entity Demo</p>
<p class="articolo"><img src="images/logo-ngrx.jpg" style="float:left;">Questa demo è stata sviluppata per mostrare il funzionamento delle entity in ngrx, ovviamente usa anche actions, reducers e selectors. È possibile aggiungere gli utenti tramite il form che verranno presentati e ordinati secondo l’età.</p>
github
stackblitz
<p style="font-size:80%;">GNU Linux Debian 10, TypeScript, Angular, NGRX</p>
<!-- NGRX Effects and Entity Demo -->
<br>
<p class="titolo-articolo">NGRX Effects and Entity Demo</p>
<p class="articolo"><img src="images/logo-ngrx.jpg" style="float:left;">In questa demo utilizzo per la prima volta gli Effects che vanno prima a modificare i dati mock per simulare un cambiamento nel database, se l’ aggiornamento dei dati mock ha successo si andranno a modificare anche i dati nello store, in caso contrario viene lanciata l’action di errore di inserimento. Dall’ interfaccia ui è possibile aggiungere gli utenti che saranno listati in ordine di età.</p>
github
stackblitz
<p style="font-size:80%;">GNU Linux Debian 10, TypeScript, Angular, NGRX</p>
<!-- NGRX Chain of Responsibility Demo -->
<br>
<p class="titolo-articolo">NGRX Chain of Responsibility Demo</p>
<p class="articolo"><img src="images/logo-ngrx.jpg" style="float:left;">In questa demo viene affrontato il discorso del pattern della delegazione di responsabilità.Sostanzialmente il componente conteiner si occupa di quasi tutta la logica e il resto dei componenti sono solo di presentazione, ad eccezione del componente per dare il rating nel quale c’è una funzione per la visualizzazione delle stelle di rating e per l’emissione del nuovo rating che scalando la gerarchia dei componenti arriverà fino al componente conteiner che farà il dispatch dell’ azione di inserimento rating. I dati da osservare hanno lo stesso funzionamento, al cambiare dei dati nello store, essi vengono passati tramite le proprietà di input ai componenti figli.</p>
github
stackblitz
<p style="font-size:80%;">GNU Linux Debian 10, TypeScript, Angular, NGRX</p>
<!-- rxjs combineLatest Demo -->
<br>
<p class="titolo-articolo">rxjs combineLatest Demo</p>
<p class="articolo"><img src="images/logo-RxJS.jpg" style="float:left;">Non c’ è molto da dire su questa demo, mostra l’uso dell’ operatore rxjs combineLatest, combina due observable e restituisce un observable di array di oggetti.</p>
github
stackblitz
<br><br><p style="font-size:80%;">GNU Linux Debian 10, TypeScript, Angular</p>
<!-- Change Detection Strategy Default Demo -->
<br>
<p class="titolo-articolo">Change Detection Strategy Default Demo</p>
<p class="articolo"><img src="images/Logo-Angular.jpg" style="float:left;">La CD di default praticamente viene sempre eseguita, qualsiasi pulsante viene cliccato, quindi si renderizzano i componenti ma individua i cambiamenti dell’ oggetto solo nel caso si clicchi “Change Object Reference”.</p>
github
stackblitz
<br><p style="font-size:80%;">GNU Linux Debian 10, TypeScript, Angular</p>
<!-- Change Detection Strategy OnPush Demo -->
<br>
<p class="titolo-articolo">Change Detection Strategy OnPush Demo</p>
<p class="articolo"><img src="images/Logo-Angular.jpg" style="float:left;">Nel caso della CD OnPush, che si usa solo per i componenti children, le proprietà di #Input vengono renderizzate solo nel caso in cui l’oggetto cambi referenza, nel caso in cui viene modificata solo la proprietà dell’ oggetto il dato non viene renderizzato perché la CD non individua cambiamenti.</p>
github
stackblitz
<p style="font-size:80%;">GNU Linux Debian 10, TypeScript, Angular</p>
<!-- Angular Security Sanitization Demo -->
<br>
<p class="titolo-articolo">Angular Security Sanitization Demo</p>
<p class="articolo"><img src="images/Logo-Angular.jpg" style="float:left;">Questa è una demo per provare una feature di sicurezza in Angular, il contenuto interpolato non è interpretato e viene renderizzato completamente mentre usando innerHTML il contenuto viene interpretato e sanificato.</p>
github
stackblitz
<br><p style="font-size:80%;">GNU Linux Debian 10, TypeScript, Angular</p>
<!-- Angular Animations Owl Carousel Demo -->
<br>
<p class="titolo-articolo">Angular Animations Owl Carousel Demo</p>
<p class="articolo"><img src="images/Logo-Angular.jpg" style="float:left;">Questa è una demo di un owl carousel, tipo quelle che si vedono su ebay o amazon, per gli oggetti visti di recente oppure per gli oggetti correlati.</p>
github
stackblitz
<br><br><br><p style="font-size:80%;">GNU Linux Debian 10, TypeScript, Angular</p>
<!-- CarsMarketPlace -->
<br>
<p class="titolo-articolo">Cars Market Place</p>
<p class="articolo"><img src="images/maserati_mc20_img1.jpg" style="float:left;">Questo è il primo progetto che ho realizzato con Angular, senza contare "helloworld" e altre ormai insignificanti demo. Non avrei voluto pubblicarlo su github perchè essendo la prima esperienza con Angular il codice non è il massimo, le best pratice non sono tutte rispettate e ci sono altre questioni, un refactor non è pensabile, insomma come prima esperienza va piu che bene ma non bisogna fare molto caso alla forma, non è neanche completato del tutto, inoltre voglio ribadire che non sono un designer quindi il design non è apprezzabile.</p>
<p class="articolo">Con firefox sul mio pc il design è corretto ma con stackblitz su firefox è sballato, problema di stackblitz, usa Chrome per visualizzare la demo in stackblitz. Loggati con user e password "StanfRei"</p>
<p class="articolo">È un e-commerce in "stile e-bay" l'utente può comprare e vendere auto ma la funzione di vendita è stata disattivata in questa demo. La gallery presenta le auto in vendita da vari utenti, con il prezzo pieno e scontato e il rating di altri compratori, c'è il pulsante per osservare l'auto o rimuovere l'interesse. Sul lato sinistro ci sono le auto viste di recente, solo in caso di login effettuato. Le altre sezioni disponibili sul menu, se effettuato l'accesso, sono 'Observed Cars' e 'UserProfile', in quest' ultima è possibile inserire lo sconto per le auto messe in vendita dall' utente loggato. Tramite le card delle auto nella Gallery è possibile raggiungere sezioni dove è possibile comprare l' auto e dare un rating, oppure vedere le auto simili a quella selezionata. Come puoi aver capito ci sono delle guardie che limitano gli accessi a delle sezioni dell' app. Usa i dati mock, se si usasse un backend reale e ci fossero degli errori, sarebbero visualizzati a schermo, vengono intercettati dall' error interceptor e passati a un servizio, iniettato e gestito dal componente navbar.</p>
github
stackblitz
<br><p style="font-size:80%;">GNU Linux Debian 10, (NodeJS), TypeScript, Angular</p>
</div>
</div>
<div class="contenitore-email">
<p style="text-align:right">andreadicioccio1983#gmail.com</p>
</div>
<script>
function chisonoPage(){ window.open('chisono.html', '_self'); }
function lavoriPage(){ window.open('lavori.html', '_self'); }
function curiositaPage(){ window.open('curiosita.html', '_self'); }
let scrollTopBtn = document.querySelector('div.scrollTop')
scrollTopBtn.addEventListener('click', () => {
window.scrollTo({top:0, behavior: 'smooth'})
})
checkLanguage()
function checkLanguage(){
language = getLanguage()
if(language == "italian"){
}else if(language == "english"){
window.location = "lavori-en.html"
}else{
window.location = 'home.html'
}
}
function changeLanguage(){
setLanguage("english")
window.location = "lavori-en.html"
}
function getLanguage(){
storage = window.localStorage
language = storage.getItem("language")
console.log(language)
return language
}
function setLanguage(language){
storage = window.localStorage
storage.setItem("language", language)
}
</script>
</body>
css
*{
font-family: 'Poppins';
z-index: -1;
}
body{
background-color:white;
text-align:center;
margin: 0;
}
p {
font-size:1em;
text-align:justify;
}
.scrollTop{
position: fixed;
right: 50px;
bottom: 50px;
z-index: 0;
}
.scrollTop:hover{
cursor: pointer;
}
.specchietto-menu{
text-align:center;
}
.pulsanti-menu{
background-color:white;
border:solid 1px lightgrey;
font-size:1em;
height:2em;
width:7em;
margin-top: 10px;
}
.pulsanti-menu:hover{
cursor: pointer;
}
div.contenitore{
text-align:center;
}
.choose-language{
position: absolute;
right: 5px;
top: 10px;
z-index: 0;
}
.btn-language{
background-color: white;
border: 0;
}
.presentazione-lavori{
font-size: 26px;
text-align:center;
}
div.specchietto-articolo{
text-align:left;
width:465px;
position: relative;
display: inline-block;
}
p.titolo-articolo {
font-size:24px;
text-align:center;
}
p.articolo{
padding: 5px;
}
.contenitore-email{
text-align:right;
background-color:white;
width: 100%;
/*position: static;*/
/*right: 0px;
left: 0px;*/
}
#media screen and (max-width: 450px) {
.pulsanti-menu{
font-size: small;
width: 100px;
}
.choose-language{
position: absolute;
right: 5px;
top: 50px;
}
.presentazione-lavori{
font-size: 20px;
}
p.titolo-articolo{
font-size: 18px;
}
.specchietto-articolo{
width:100% !important;
}
p.articolo{
font-size: small;
}
}
It's because of the z-index in your css. Links with negative z-index are unclickable, its better to remove the z-index: -1 from your *-selector.
Or you can add an additional selector for the <a>-Tags to your style:
a {
z-index: 1;
}

How to enter Carriage Return in XSL

I am programming a simple web app. I have the following xml :`
<pelis>
<nombre id="avengers">Valoracion de Avengers Engame
<Valoracion>Calificacion general: 7.5</Valoracion>
<Valorpro>Calificacion de Cartelera Tinajo: 8</Valorpro>
<ComentariosP>Positivo: Buena pelicula, con un argumento interesante y envolvente. Las escenas estan bien rodadas y las coreografias bien ejecutadas. La banda sonora es buena, asi como el vestuario y sobre todo el maquillaje y los efectos especiales.</ComentariosP>
<ComentariosN>Negativo: Demasiado larga para nuestro gusto. Algunos fallos de guion y de realizacion. El sonido en algunas escenas es demasiado elevado y poco claro. El argumento es predecible desde muy temprano.</ComentariosN>
</nombre>
<nombre id="mamma">Valoracion de Mamma Mia!
<Valoracion>Calificacion general: 8</Valoracion>
<Valorpro>Calificacion de Cartelera Tinajo: 8</Valorpro>
<ComentariosP>Positivo: Pelicula muy recomendable. Unifica una comedia elaborada con una trama interesante y adictiva. La banda sonora de ABBA es impecable, sumado a un escenario espectacular, asi como unas coreografias muy elaboradas.</ComentariosP>
<ComentariosN>Negativo: Guion predecible. En algunas partes se hace un poco aburrida y no consigue captar al espectador. </ComentariosN>
</nombre>
<nombre id="hobbit">Valoracion de El Hobbit
<Valoracion>Calificacion general: 8</Valoracion>
<Valorpro>Calificacion de Cartelera Tinajo: 10</Valorpro>
<ComentariosP>Positivo: Gran película. Al igual que sus predecesoras (El señor de los Anillos I,II y III), es una obra de arte. Música impresionante, universo envolvente, escenas increibles, trama interesante, vestuario peculiar y una infinidad de aspectos positivos.</ComentariosP>
<ComentariosN>Negativo: El unico punto negativo es que puede ser un poco larga</ComentariosN>
</nombre>
<nombre id="hotel">Valoracion de Hotel Transilvania
<Valoracion>Calificacion general: 8.5</Valoracion>
<Valorpro>Calificacion de Cartelera Tinajo: 8</Valorpro>
<ComentariosP>Positivo: Una comedia para toda la familia. Peculiar en gran medida, dado que enfoca a los monstruos como seres humanizados. Buena trama, actores conocidos. Muy entretenida.</ComentariosP>
<ComentariosN>Negativo: No tiene ningun punto negativo destacable</ComentariosN>
</nombre>
<nombre id="lobo">Valoracion de El Lobo de Wall Street
<Valoracion>Calificacion general: 8</Valoracion>
<Valorpro>Calificacion de Cartelera Tinajo: 9</Valorpro>
<ComentariosP>Positivo: Una pelicula muy curiosa. Cuenta con grandes actores, un guion elaborado, unas escenas muy bien rodadas. Se sigue con gran interes y tiene giros que la convierten en un peliculon</ComentariosP>
<ComentariosN>Negativo: Demasiado larga (3 horas de duracion)</ComentariosN>
</nombre>
</pelis>`
and I also have the following XSL to transform it to HTML:
What I want is that all the text that will be shown in the html have carriage return after every line. I have tried adding and also what you can see in the code, but it doesnt work.
Because XSLT output is HTML, you can use <br/> for that. Or CSS for the <p> tag.
A NL or CR character in an HTML document displays as an ordinary space in the browser. If you want text to start on a new line when rendered in the browser, you typically want to output a <br> element.

ruby on rails reinsert html tags

I'm getting a document from my database in xml format like this
link to xml document
It contains these things &lt p &gt (I removed the semicolumn as this website also transforms it in ).
Is there ruby or a specific rails function that allows to rewrite the correct html tags ? Or must I do a regex for that?
If you are using in erb file then do as,
<%= raw "<p>Sacent tout cil ki cest escrit veront et oront ke mesire Engerrans, curés de Waneheng, et Jehans Vrouars, de Waneheng doivent cescuns comme se propre dette et cescuns pour le tout a Jehans le Petit, cousturier de dras u a celui ki cest escrit aporteroit, lai homme, IIIc de faissiaus de gros et de lonc a le clauwiere de Tournai, a paiier XV jours devant le jour Saint Jehans Baptiste ki vient prochainement u XV jours apriés la endevens, en tous leur boins poins et livret en Tournai sour kauchie en quel liu ke li dis Jehans li cousturiers vorra, mais ke kars u karete i puist tourner et kariier.&nbsp;</p><p>Et se li dis Jehans li Petis en faisoit coust u frais u despens u emprunt par le defaute de leur paiement, rendre li doivent li deteur dessus dit parmi sen voir dit sans ceste dette amenrir et si poroit li dis Jehans li Petis u chius ki cest escrit aporteroit, lais hons, donner sour le detteurs dessus dit a quel signeur de tiere u a quel bailliu u a quele justice k'il vorroit le quint denier que li value des faissiaus monteroit pour le sien faire avoir d'iaus et ce quint seroient il tenut de paiier avuec le dette devant dite. De tout chou ont il assenet a aus et au leur a quank'il ont et aront partout et cescuns pour le tout.&nbsp;</p><p>La fu Jakemes Brande con voirs jurés et Jakemes le Cuveliers li Agneliers, ki tiesmongna k'il connoiste les parties, comme autres hons. Et si furent les parties a ces escit livrer.&nbsp;</p><p>L'an de grasse mil CCC et XIIII le witisme jour dou mois de march, par un samedi</p>"%>
Output:
Sacent tout cil ki cest escrit veront et oront ke mesire Engerrans, curés de Waneheng, et Jehans Vrouars, de Waneheng doivent cescuns comme se propre dette et cescuns pour le tout a Jehans le Petit, cousturier de dras u a celui ki cest escrit aporteroit, lai homme, IIIc de faissiaus de gros et de lonc a le clauwiere de Tournai, a paiier XV jours devant le jour Saint Jehans Baptiste ki vient prochainement u XV jours apriés la endevens, en tous leur boins poins et livret en Tournai sour kauchie en quel liu ke li dis Jehans li cousturiers vorra, mais ke kars u karete i puist tourner et kariier. Et se li dis Jehans li Petis en faisoit coust u frais u despens u emprunt par le defaute de leur paiement, rendre li doivent li deteur dessus dit parmi sen voir dit sans ceste dette amenrir et si poroit li dis Jehans li Petis u chius ki cest escrit aporteroit, lais hons, donner sour le detteurs dessus dit a quel signeur de tiere u a quel bailliu u a quele justice k'il vorroit le quint denier que li value des faissiaus monteroit pour le sien faire avoir d'iaus et ce quint seroient il tenut de paiier avuec le dette devant dite. De tout chou ont il assenet a aus et au leur a quank'il ont et aront partout et cescuns pour le tout. La fu Jakemes Brande con voirs jurés et Jakemes le Cuveliers li Agneliers, ki tiesmongna k'il connoiste les parties, comme autres hons. Et si furent les parties a ces escit livrer. L'an de grasse mil CCC et XIIII le witisme jour dou mois de march, par un samedi
If you are using in controller then use,
include ActionView::Helpers::OutputSafetyHelper
raw("<p>Sacent tout cil ki cest escrit veront et oront ke mesire Engerrans, curés de Waneheng, et Jehans Vrouars, de Waneheng doivent cescuns comme se propre dette et cescuns pour le tout a Jehans le Petit, cousturier de dras u a celui ki cest escrit aporteroit, lai homme, IIIc de faissiaus de gros et de lonc a le clauwiere de Tournai, a paiier XV jours devant le jour Saint Jehans Baptiste ki vient prochainement u XV jours apriés la endevens, en tous leur boins poins et livret en Tournai sour kauchie en quel liu ke li dis Jehans li cousturiers vorra, mais ke kars u karete i puist tourner et kariier.&nbsp;</p><p>Et se li dis Jehans li Petis en faisoit coust u frais u despens u emprunt par le defaute de leur paiement, rendre li doivent li deteur dessus dit parmi sen voir dit sans ceste dette amenrir et si poroit li dis Jehans li Petis u chius ki cest escrit aporteroit, lais hons, donner sour le detteurs dessus dit a quel signeur de tiere u a quel bailliu u a quele justice k'il vorroit le quint denier que li value des faissiaus monteroit pour le sien faire avoir d'iaus et ce quint seroient il tenut de paiier avuec le dette devant dite. De tout chou ont il assenet a aus et au leur a quank'il ont et aront partout et cescuns pour le tout.&nbsp;</p><p>La fu Jakemes Brande con voirs jurés et Jakemes le Cuveliers li Agneliers, ki tiesmongna k'il connoiste les parties, comme autres hons. Et si furent les parties a ces escit livrer.&nbsp;</p><p>L'an de grasse mil CCC et XIIII le witisme jour dou mois de march, par un samedi</p>")
Or you can also use like,
CGI.unescapeHTML "<p>"
Output:
""

XPath: How do I extract the text from almost equivalent html structure?

I'm trying to extract some news articles from a webpage, but the html structure changes for some of these articles.
In one case I have this:
and in another case I have this:
Is there a XPath I can use that could extract the full text on both cases?
EDIT
For the fist case I have tried this (using scrapy shell):
response.xpath('//*[#class="mioloNoticia"]/article/text()').extract()
which results in:
[u'\r\n ',
u'\r\n ',
u'\r\n ',
u'\r\n ',
u'\r\n ',
u'\r\n ',
u'Entendo as raz\xf5es dos defensores do acordo ortogr\xe1fico. Tamb\xe9m entendo as raz\xf5es pelas quais uma criatura acredita que \xe9 Napole\xe3o Bonaparte. ',
u'Mais dif\xedcil de compreender \xe9 o motivo que leva uma classe pol\xedtica inteira a seguir com respeito Napole\xe3o Bonaparte. O problema do acordo nem sequer \xe9 t\xe9cnico ou jur\xeddico. Isso \xe9 \xf3bvio: qualquer um sabe que aquilo \xe9 uma aberra\xe7\xe3o lingu\xedstica (a grafia como mera transcri\xe7\xe3o fon\xe9tica?) e uma ilegalidade completa (lembrar as acrobacias jur\xeddicas que se fizeram sobre o texto original). Sem falar da ambi\xe7\xe3o autorit\xe1ria de submeter 300 milh\xf5es de falantes a um capricho racionalista. ',
u'O problema do acordo \xe9 termos tido v\xe1rios governos que, reverentes e analfabetos, foram ratificando, modificando e legislando como se o acordo fosse mesmo para levar a s\xe9rio. Se Marcelo ajudar a acabar com esta farsa, a sua Presid\xeancia j\xe1 ter\xe1 valido a pena.']
and for the second case I have tried:
response.xpath('//*[#class="mioloNoticia"]/article/p/text()').extract()
which results in a better extraction:
[u'Os c\xe1lculos na ves\xedcula, os sintomas de um reumatismo que o atacava quando o Outono se aproximava ou a certeza de que o fim das coisas era inevit\xe1vel abriam-lhe a porta ao pessimismo em geral e \xe0 descren\xe7a no futuro \u2013 mas a vis\xe3o de um mundo encavalitado \xe0s costas do "progresso" era o aspecto mais penoso da exist\xeancia. A esta dist\xe2ncia, compreendo-o; ser "contra o progresso" \xe9 nos nossos dias um pecado capital, e resmungar contra "a criatividade" tornou-se uma apostasia definitiva e dram\xe1tica.',
u'O "ser humano" est\xe1 condenado a acreditar na criatividade sem limites, na originalidade, no progresso, na mudan\xe7a e, finalmente, na ideia de que as coisas novas s\xe3o sempre superiores \xe0s antigas. Isto pode fazer confus\xe3o a um velho do Alto Minho, educado pela vida (e pelos desaires) a apreciar as coisas que permanecem e a desconfiar das inven\xe7\xf5es em que n\xe3o v\xea grande utilidade.',
u'A minha sobrinha Maria Lu\xedsa \u2013 a eleitora esquerdista da fam\xedlia \u2013 j\xe1 foi uma sacerdotisa do Progresso (com mai\xfascula). Hoje, desconfia bastante da direc\xe7\xe3o que as coisas tomam, e o seu optimismo em rela\xe7\xe3o \xe0 esp\xe9cie humana \xe9 morigerado. Alimento a esperan\xe7a, dissimulada por muita cautela e certo tom de ironia, de v\xea-la feliz como Dona Ester, minha m\xe3e, gostava de ver felizes os seus filhos, espalhados sobre o areal da praia de Afife, respirando o iodo da tarde e abrigando-se do vento galego que descia pelo litoral. Os sucessos e insucessos dos \xfaltimos setenta anos ensinaram-me a desejar pouco, a aceitar a grandeza das coisas desconhecidas, a reler os livros que j\xe1 foram belos algum dia, a manter alguma f\xe9 numa ordem que comanda os planetas ou a solid\xe3o das dunas de Moledo. Ao mesmo tempo, esse ego\xedsmo n\xe3o faz mal aos outros. N\xe3o exige muito deles. N\xe3o lhes oferece demasiadas desilus\xf5es, nem utopias, nem promessas v\xe3s de um mundo perfeito. N\xe3o lhes alimenta a f\xe9 nas coisas imposs\xedveis que exigem que os outros mudem para que n\xf3s possamos satisfazer os desejos pessoais.',
u'Esse mundo perfeito existe, sim \u2013 mas terminou h\xe1 muito, antes do progresso, da democracia e dos d\xe9fices da economia. Tamb\xe9m \xe9 preciso lembrar que n\xe3o se pode voltar atr\xe1s nem \xe9 poss\xedvel recuperar o tempo perdido. O que est\xe1 perdido, est\xe1 perdido. O que passou, passou h\xe1 muito.']
But I'm after a single XPath that could word for both cases.
If the only different between different articles are plain text or text within tags the xpath is quite simple
//article/text() | //article/p/text()
This will extract both whether one of them exists or both