webForumDet fria alternativet

Byta namn på element i en xml fil

.NET

5 svar · 484 visningar · startad av Pedda

Medlem sedan juni 20006 031 inlägg
Frågan#1

Funderar på hur man enklast byter namn på element i en xml fil, men jag tycker inte jag kommer på någon smidig lösning.
Samma element kan förekomma flera gånger i xml filen.

Hur skulle ni ha gjort?
C# eller VB.NET har jag tänkt använda.

Medlem sedan dec. 20014 239 inlägg
Medlem sedan juni 20006 031 inlägg
#3

Japp, det har jag.

Medlem sedan dec. 19996 721 inlägg
#4

Ett gäng alternativ...

1. Vanlig strängersättning i filen/strängen.
2. Transformera om XML:en med XSL
3. Gör en egen ärvd XmlReader och byt ut namnet i en override.
4. Läs igenom dokumentet med DOM (XmlDocument) och byt ut elementen (ta bort de gamla, stoppa in nya och lägg innehållet från de gamla i de nya)

Medlem sedan juni 20006 031 inlägg
#5

Hade tänkt använda punkt 4, men hittade inga bra exempel på hur det går till så det blir nog punkt 1 jag kommer använda.

Nu har det tillkommit lite mer som behöver ändras i xml filen så jag behöver hjälp med lite regex också. (Måste ta tag i regex och lära mig det ordentligt nån gång)

Regex som jag behöver
hitta alla:

<text><z-betoning z-bvariant = "5">lite text</z-betoning>lite text.</text>

och ersätta text elementet med namnet obtext och wrappa allt med ett nytt element som heter obs.
Du skulle resultatet alltså bli så här:

<obs><obstext><z-betoning z-bvariant = "5">lite text</z-betoning>lite text.</obstext></obs>
Medlem sedan dec. 19996 721 inlägg
#6

Regex är inte så lyckat för XML-manipulering. För ovanstående ändamål skulle jag använda XSL.

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)