Cum se emite un fișier xml într-o consolă cu recursivitate

Dacă nu aveți nevoie de un anumit XmlDocument funcțional, atunci este mai ușor să utilizați XDocument din spațiul de nume System.Xml.Linq. Acest lucru va avea un cod mai compact.

Pentru a ieși în consola în forma pe care ați specificat-o, există trei moduri.

1. Traversarea recursivă a arborelui XML

Este implementat destul de simplu:

Dar pentru a introduce în această apă numerotarea selectivă a elementelor specifice fără "cârje" nu va funcționa. Cârligul pentru numerotare poate arăta astfel:

În acest caz, toate elementele vor fi numerotate, cu excepția celor care nu conțin alte elemente.

2. Traversarea fixă ​​a arborelui XML

Din punctul de vedere al arborelui, se păstrează recursiunea, aceasta este structura arborelui, dar dacă această structură este fixă ​​și cunoscută. atunci se poate face fără o invocare recursivă a metodelor, dar se folosește un lanț de apeluri într-o buclă. Vă voi arăta un exemplu:

După cum puteți vedea, nu există nici o recursivitate, dar în cazul în care structura XML va fi diferită de cea stabilită în codul, „tot rândul său, într-un dovleac“ și va da rezultate incorecte.

Puteți face toată munca cu mâinile, obținând textul original XML ca text. Pentru a face acest lucru, puteți folosi orice fel știți cum să obțineți text dintr-un fișier.

Apoi, la linia textului sursă XML, vom aplica toate expresiile regulate posibile sau alte metode de conversie a unui șir într-un șir sau într-o serie de șiruri de tip dorit și ieșirea rezultatului.

Nu voi cita codul pentru această metodă, deoarece există o mulțime de opțiuni pentru o astfel de soluție, iar viziunea asupra modului în care se face corect este chiar mai mare. În plus, mă îndoiesc că această opțiune va fi semnificativ mai productivă decât cele două anterioare, mai degrabă opusul.

Alege ce opțiune ți se potrivește cel mai bine =)

Articole similare