Quantcast
Channel: VBForums - Visual Basic .NET
Viewing all articles
Browse latest Browse all 27513

Linq to Xml sorting

$
0
0
Hey,

I am attempting to sort an xml file by 2 variables the Signal name and the Size, here is what I have tried so far

vb.net Code:
  1. Dim wiredatas = From n In doc.<Data>.<WireData>.<Signal_Name> Order By CStr(n.@Signal.First())

Which gives me the data sorted like so

Code:

Signal : 1051 Size : AWG 10
Signal : 1052 Size : AWG 10
Signal : 1053 Size : AWG 10
Signal : 1071 Size : AWG 10
Signal : 1071 Size : AWG 10
Signal : 1072 Size : AWG 16
Signal : 1073 Size : AWG 14
Signal : 1073 Size : AWG 14
Signal : 1081 Size : AWG 10
Signal : 1081 Size : AWG 10
Signal : 1082 Size : AWG 16
Signal : 1083 Size : AWG 14
Signal : 1083 Size : AWG 14
Signal : 1091 Size : AWG 10
Signal : 1091 Size : AWG 10
Signal : 1092 Size : AWG 10
Signal : 1093 Size : AWG 10
Signal : 1093 Size : AWG 10
Signal : 1141 Size : AWG 10
Signal : 1151 Size : AWG 16
Signal : 1151 Size : AWG 14
Signal : 1151 Size : AWG 14
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 16
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1182 Size : AWG 16
Signal : 1182 Size : AWG 14
Signal : 1182 Size : AWG 14
Signal : 1182 Size : AWG 14
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 16
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 16
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 2082 Size : AWG 10
Signal : 2082 Size : AWG 10
Signal : 2082 Size : AWG 10
Signal : 2091 Size : AWG 2/0
Signal : 2092 Size : AWG 2/0
Signal : 2092 Size : AWG 10
Signal : 2092 Size : AWG 10
Signal : 2092 Size : AWG 10
Signal : 2093 Size : AWG 10
Signal : 2121 Size : AWG 18
Signal : 2191 Size : AWG 10
Signal : 2201 Size : AWG 10
Signal : 2241 Size : AWG 18
Signal : 4021 Size : AWG 18
Signal : 4022 Size : AWG 18
Signal : 4031 Size : AWG 18
Signal : 4032 Size : AWG 18
Signal : 4053 Size : AWG 18
Signal : 4061 Size : AWG 18
Signal : 4081 Size : AWG 18
Signal : 4091 Size : AWG 18
Signal : 4101 Size : AWG 18
Signal : 4101 Size : AWG 18
Signal : 4101 Size : AWG 18
Signal : 4111 Size : AWG 18
Signal : 4111 Size : AWG 18
Signal : 4112 Size : AWG 18
Signal : 4113 Size : AWG 18
Signal : 4114 Size : AWG 18
Signal : 4192 Size : AWG 18
Signal : 4192 Size : AWG 18
Signal : 4193 Size : AWG 18
Signal : 4193 Size : AWG 18
Signal : 4236 Size : AWG 18
Signal : 4267 Size : AWG 18
Signal : 4267 Size : AWG 18
Signal : 4268 Size : AWG 18
Signal : 5021 Size : AWG 18
Signal : 7071 Size : AWG 18
Signal : 7072 Size : AWG 18
Signal : 7072 Size : AWG 18
Signal : 7082 Size : AWG 18
Signal : 7083 Size : AWG 18
Signal : 7084 Size : AWG 18
Signal : 7101 Size : AWG 18
Signal : 7102 Size : AWG 18
Signal : 7103 Size : AWG 18
Signal : 7104 Size : AWG 18
Signal : 7131 Size : AWG 18
Signal : 7132 Size : AWG 18
Signal : 7133 Size : AWG 18
Signal : 7134 Size : AWG 18
Signal : 7161 Size : AWG 18
Signal : 7192 Size : AWG 18
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10


and I tried this

vb.net Code:
  1. Dim wiredatas = From n In doc.<Data>.<WireData>.<Signal_Name> Order By CStr(n.@Signal.First()), CStr(n.<Size>.Value.First())

and I gets this

Code:

Signal : 1051 Size : AWG 10
Signal : 1052 Size : AWG 10
Signal : 1053 Size : AWG 10
Signal : 1071 Size : AWG 10
Signal : 1071 Size : AWG 10
Signal : 1072 Size : AWG 16
Signal : 1073 Size : AWG 14
Signal : 1073 Size : AWG 14
Signal : 1081 Size : AWG 10
Signal : 1081 Size : AWG 10
Signal : 1082 Size : AWG 16
Signal : 1083 Size : AWG 14
Signal : 1083 Size : AWG 14
Signal : 1091 Size : AWG 10
Signal : 1091 Size : AWG 10
Signal : 1092 Size : AWG 10
Signal : 1093 Size : AWG 10
Signal : 1093 Size : AWG 10
Signal : 1141 Size : AWG 10
Signal : 1151 Size : AWG 16
Signal : 1151 Size : AWG 14
Signal : 1151 Size : AWG 14
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 16
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1171 Size : AWG 18
Signal : 1182 Size : AWG 16
Signal : 1182 Size : AWG 14
Signal : 1182 Size : AWG 14
Signal : 1182 Size : AWG 14
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 16
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 16
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 2082 Size : AWG 10
Signal : 2082 Size : AWG 10
Signal : 2082 Size : AWG 10
Signal : 2091 Size : AWG 2/0
Signal : 2092 Size : AWG 2/0
Signal : 2092 Size : AWG 10
Signal : 2092 Size : AWG 10
Signal : 2092 Size : AWG 10
Signal : 2093 Size : AWG 10
Signal : 2121 Size : AWG 18
Signal : 2191 Size : AWG 10
Signal : 2201 Size : AWG 10
Signal : 2241 Size : AWG 18
Signal : 4021 Size : AWG 18
Signal : 4022 Size : AWG 18
Signal : 4031 Size : AWG 18
Signal : 4032 Size : AWG 18
Signal : 4053 Size : AWG 18
Signal : 4061 Size : AWG 18
Signal : 4081 Size : AWG 18
Signal : 4091 Size : AWG 18
Signal : 4101 Size : AWG 18
Signal : 4101 Size : AWG 18
Signal : 4101 Size : AWG 18
Signal : 4111 Size : AWG 18
Signal : 4111 Size : AWG 18
Signal : 4112 Size : AWG 18
Signal : 4113 Size : AWG 18
Signal : 4114 Size : AWG 18
Signal : 4192 Size : AWG 18
Signal : 4192 Size : AWG 18
Signal : 4193 Size : AWG 18
Signal : 4193 Size : AWG 18
Signal : 4236 Size : AWG 18
Signal : 4267 Size : AWG 18
Signal : 4267 Size : AWG 18
Signal : 4268 Size : AWG 18
Signal : 5021 Size : AWG 18
Signal : 7071 Size : AWG 18
Signal : 7072 Size : AWG 18
Signal : 7072 Size : AWG 18
Signal : 7082 Size : AWG 18
Signal : 7083 Size : AWG 18
Signal : 7084 Size : AWG 18
Signal : 7101 Size : AWG 18
Signal : 7102 Size : AWG 18
Signal : 7103 Size : AWG 18
Signal : 7104 Size : AWG 18
Signal : 7131 Size : AWG 18
Signal : 7132 Size : AWG 18
Signal : 7133 Size : AWG 18
Signal : 7134 Size : AWG 18
Signal : 7161 Size : AWG 18
Signal : 7192 Size : AWG 18
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10
Signal : GND Size : AWG 10


In theory the 2nd try should work, I want it so that the signals are the primary and then the size is arranged in order within the signal... so

instead of

Code:

Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 16
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 16
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18
Signal : 1221 Size : AWG 18



The Size AWG 16 should either be first or last and not in between, I do not know why it does not catch that ? :S

Viewing all articles
Browse latest Browse all 27513

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>