Hallo, ik krijg de volgende XML aangeleverd:
Nu wil ik het volgende:
Lorem selecteren,
vervolgens de "bold" node, daar de text van selecteren of eventuele childnodes.
Daarna dolor selecteren, daarna eventueel volgende childnodes, etc.
Kan dit? Of heb ik dan perse een opmaak nodig als:
Het lukt me wel alle text op te halen van een node, zonder dus de inhoud van de children d.m.v. een extention method:
Eigelijk wil ik dus gewoon door een element for-eachen, maar ik heb dus geen nodes, maar platte text er in plus children, dus een output van zoiets:
"lorem"
XElement ("ipsum")
"dolor"
XElement ("sit")
"amet"
XML:
1
2
3
4
5
6
7
| <listitem> Lorem <bold>ipsum</bold> dolor <italics>sil</italics> amet </listitem> |
Nu wil ik het volgende:
Lorem selecteren,
vervolgens de "bold" node, daar de text van selecteren of eventuele childnodes.
Daarna dolor selecteren, daarna eventueel volgende childnodes, etc.
Kan dit? Of heb ik dan perse een opmaak nodig als:
XML:
1
2
3
4
5
6
7
| <listitem> <content>Lorem</content> <bold>ipsum</bold> <content>dolor</content> <italics>sit</italics> <content>amet</content> </listitem> |
Het lukt me wel alle text op te halen van een node, zonder dus de inhoud van de children d.m.v. een extention method:
C#:
1
2
3
4
5
6
7
8
9
| public static string GetText(this XElement element) { if (!element.HasElements) return element.Value; var sb = new StringBuilder(); foreach (var xNode in element.Nodes().OfType<XText>()) sb.Append(xNode.ToString()); return sb.ToString(); } |
Eigelijk wil ik dus gewoon door een element for-eachen, maar ik heb dus geen nodes, maar platte text er in plus children, dus een output van zoiets:
"lorem"
XElement ("ipsum")
"dolor"
XElement ("sit")
"amet"
[ Voor 3% gewijzigd door Wijnbo op 01-03-2010 10:57 ]