0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 33
1

Изменение определенных атрибутов в XML

18.08.2021, 07:36. Показов 4678. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть следующий xml файл. Нужно сделать так, чтобы:

Если значение атрибута return = 1, все значения атрибутов quantity менялись на положительные. Затем: к существующему значению атрибута comment через пробел добавлялось слово return

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
<?xml version="1.0" encoding="windows-1251"?>
<documents>
<preorders>
<preorder>
<outercode>W100000761510846</outercode>
<date>2021-06-18 10:55:37</date>
<employeecode>2130707207</employeecode>
<buypointcode>2130716989</buypointcode>
<stockid>2130706438</stockid>
<comment>вася</comment>
<return>1</return>
<body>
<item>
<SKUcode>2130757525</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>54,42000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756939</SKUcode>
<quantity>-5,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>49,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130757524</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>37,83000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130750119</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>59,33000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130754881</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>57,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130758116</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>52,58000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130755600</SKUcode>
<quantity>-24,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>47,92000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756456</SKUcode>
<quantity>-10,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>44,67000000</BASEPRICE>
<PromoType></PromoType>
</item>
</body>
</preorder>
<preorder>
<outercode>W100000761510846</outercode>
<date>2021-06-18 10:55:37</date>
<employeecode>2130707207</employeecode>
<buypointcode>2130716989</buypointcode>
<stockid>2130706438</stockid>
<comment>федя</comment>
<return>0</return>
<body>
<item>
<SKUcode>2130757525</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>54,42000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756939</SKUcode>
<quantity>5,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>49,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130757524</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>37,83000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130750119</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>59,33000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130754881</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>57,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130758116</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>52,58000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130755600</SKUcode>
<quantity>24,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>47,92000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756456</SKUcode>
<quantity>10,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>44,67000000</BASEPRICE>
<PromoType></PromoType>
</item>
</body>
</preorder>
<preorder>
<outercode>W100000761510846</outercode>
<date>2021-06-18 10:55:37</date>
<employeecode>2130707207</employeecode>
<buypointcode>2130716989</buypointcode>
<stockid>2130706438</stockid>
<comment>вова</comment>
<return>0</return>
<body>
<item>
<SKUcode>2130757525</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>54,42000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756939</SKUcode>
<quantity>5,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>49,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130757524</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>37,83000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130750119</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>59,33000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130754881</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>57,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130758116</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>52,58000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130755600</SKUcode>
<quantity>24,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>47,92000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756456</SKUcode>
<quantity>10,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>44,67000000</BASEPRICE>
<PromoType></PromoType>
</item>
</body>
</preorder>
<preorder>
<outercode>W100000761510846</outercode>
<date>2021-06-18 10:55:37</date>
<employeecode>2130707207</employeecode>
<buypointcode>2130716989</buypointcode>
<stockid>2130706438</stockid>
<comment>ТЕСТ</comment>
<return>1</return>
<body>
<item>
<SKUcode>2130757525</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>54,42000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756939</SKUcode>
<quantity>-5,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>49,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130757524</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>37,83000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130750119</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>59,33000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130754881</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>57,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130758116</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>52,58000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130755600</SKUcode>
<quantity>-24,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>47,92000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756456</SKUcode>
<quantity>-10,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>44,67000000</BASEPRICE>
<PromoType></PromoType>
</item>
</body>
</preorder>
</preorders>
</documents>
После этого все узлы <preorder>, в которых значение атрибута <return>=1 перетаскиваем в новый xml-файл.

В итоге должно получиться два файла:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?xml version="1.0" encoding="windows-1251"?>
<documents>
<preorders>
<preorder>
<outercode>W100000761510846</outercode>
<date>2021-06-18 10:55:37</date>
<employeecode>2130707207</employeecode>
<buypointcode>2130716989</buypointcode>
<stockid>2130706438</stockid>
<comment>вася return</comment>
<return>1</return>
<body>
<item>
<SKUcode>2130757525</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>54,42000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756939</SKUcode>
<quantity>-5,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>49,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130757524</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>37,83000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130750119</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>59,33000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130754881</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>57,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130758116</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>52,58000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130755600</SKUcode>
<quantity>-24,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>47,92000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756456</SKUcode>
<quantity>-10,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>44,67000000</BASEPRICE>
<PromoType></PromoType>
</item>
</body>
</preorder>
<preorder>
<outercode>W100000761510846</outercode>
<date>2021-06-18 10:55:37</date>
<employeecode>2130707207</employeecode>
<buypointcode>2130716989</buypointcode>
<stockid>2130706438</stockid>
<comment>ТЕСТ return</comment>
<return>1</return>
<body>
<item>
<SKUcode>2130757525</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>54,42000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756939</SKUcode>
<quantity>-5,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>49,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130757524</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>37,83000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130750119</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>59,33000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130754881</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>57,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130758116</SKUcode>
<quantity>-15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>52,58000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130755600</SKUcode>
<quantity>-24,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>47,92000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756456</SKUcode>
<quantity>-10,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>44,67000000</BASEPRICE>
<PromoType></PromoType>
</item>
</body>
</preorder>
</preorders>
</documents>
и

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?xml version="1.0" encoding="windows-1251"?>
<documents>
<preorders>
<preorder>
<outercode>W100000761510846</outercode>
<date>2021-06-18 10:55:37</date>
<employeecode>2130707207</employeecode>
<buypointcode>2130716989</buypointcode>
<stockid>2130706438</stockid>
<comment>федя</comment>
<return>0</return>
<body>
<item>
<SKUcode>2130757525</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>54,42000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756939</SKUcode>
<quantity>5,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>49,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130757524</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>37,83000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130750119</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>59,33000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130754881</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>57,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130758116</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>52,58000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130755600</SKUcode>
<quantity>24,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>47,92000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756456</SKUcode>
<quantity>10,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>44,67000000</BASEPRICE>
<PromoType></PromoType>
</item>
</body>
</preorder>
<preorder>
<outercode>W100000761510846</outercode>
<date>2021-06-18 10:55:37</date>
<employeecode>2130707207</employeecode>
<buypointcode>2130716989</buypointcode>
<stockid>2130706438</stockid>
<comment>вова</comment>
<return>0</return>
<body>
<item>
<SKUcode>2130757525</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>54,42000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756939</SKUcode>
<quantity>5,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>49,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130757524</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>37,83000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130750119</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>59,33000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130754881</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>57,75000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130758116</SKUcode>
<quantity>15,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>52,58000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130755600</SKUcode>
<quantity>24,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>47,92000000</BASEPRICE>
<PromoType></PromoType>
</item>
<item>
<SKUcode>2130756456</SKUcode>
<quantity>10,000</quantity>
<TotalDiscount>0,00000</TotalDiscount>
<BASEPRICE>44,67000000</BASEPRICE>
<PromoType></PromoType>
</item>
</body>
</preorder>
</preorders>
</documents>
Количество узлов <preorder> может быть любым.

Пробовал загонять каждый узел в переменную, но запутался на этапе подсчета узлов <preorder>. Про дальнейшие действия даже идей никаких нет.

Буду благодарен, если поможете
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.08.2021, 07:36
Ответы с готовыми решениями:

Удаление определенных атрибутов в xml-файле
Здравствуйте! Вот xml-код. &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;Racine&gt; &lt;Machine...

Xsl - исключения для определённых атрибутов xml
Имеет xml примерно такого формата: &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;WorkersList&gt; ...

Изменить значение определенных атрибутов в xml-файле
Всем привет;) собственно столкнулась с такой задачкой xml документ пример одной из записей:...

Изменение атрибутов в xml
То что есть на данный момент: XDocument doc = XDocument.Load(&quot;test.xml&quot;); var...

32
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,450
Записей в блоге: 42
18.08.2021, 12:33 2
Лучший ответ Сообщение было отмечено PussyDestroyer3 как решение

Решение

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
[xml]$doc = Get-Content .\tmp.xml
$doc.documents.preorders.preorder.ForEach{
    [System.Xml.XmlNode]$xmlNode = $_
    if ($xmlNode.return -eq 1) {
        foreach ($item in $xmlNode.body.item){
            $item.quantity = "{0:n3}" -f [math]::Abs([double]::Parse($item.quantity))
        }
    } else {
        $xmlNode.RemoveAll()
    }
}
 
$doc.Save(".\tmpOut.xml")
ps 7
1
0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 33
18.08.2021, 14:08  [ТС] 3
Спасибо, работает.
Только почему-то так в tmpout
XML
1
<comment>????</comment>
У меня с кодировкой что-то не так?
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,450
Записей в блоге: 42
18.08.2021, 15:01 4
XML
1
$doc = Get-Content .\tmp.xml [B]-encoding default[/B]
попробуйте так
0
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
18.08.2021, 18:09 5
Цитата Сообщение от alhaos
ps 7
Для pwsh слишком много телодвижений.
PowerShell
1
2
3
4
5
($x=[xml](Get-Content X:\doc\input.xml)).SelectNodes('//preorder').ForEach{
  ([Byte]$_.return) ? $($_.SelectNodes('//quantity').ForEach{
    $_.InnerText = $_.InnerText -replace '-'
  };$_.comment += ' return') : $($_.RemoveAll())
} && $x.Save('X:\doc\output.xml')
Хотя вообще задача должна решаться посредством трансформации XSLT.
1
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,450
Записей в блоге: 42
18.08.2021, 18:14 6
greg zakharov, отнюдь, на мой взгляд твое решение избыточно частное.
0
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
18.08.2021, 18:17 7
Цитата Сообщение от alhaos
на мой взгляд твое решение избыточно частное.
Оправдываешь свой говнокод?
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,450
Записей в блоге: 42
18.08.2021, 18:40 8
greg zakharov, в свой посмотри, использование вот этого [Byte]$_.return, -replace '-' это думаю не только у меня вызывает сомнение.
0
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
18.08.2021, 19:31 9
Цитата Сообщение от alhaos
использование вот этого [Byte]$_.return, -replace '-' это думаю не только у меня вызывает сомнение.
Специально для вырезано
PowerShell
1
([xml](gc .\input.xml)).SelectNodes('//preorder').ForEach{$$ = [byte]$_.return; '{0}: {1}' -f $$.GetType(), $$}
Трудности с булевыми типами? Или так и не дошло?
То же с -replace: для чего строку приводить к числу, чтобы оное привести к строковому типу?!
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,450
Записей в блоге: 42
18.08.2021, 20:28 10
greg zakharov, частности Карл! Стоит чуть поменять входные параметры и твой код надо будет переписывать, поменяй условие с еденицы на двойку и все, отрицаьельное значение на любое другое, видешь я аргументирую, и весьма осторожен в формулировках и мнениях, а ты оскорбляетшь без аргументации. Ты неприятный собеседник, какое бы благо ты не нес.
0
5981 / 1990 / 323
Регистрация: 10.12.2013
Сообщений: 6,854
18.08.2021, 20:44 11
Цитата Сообщение от alhaos Посмотреть сообщение
какое бы благо ты не нес.
Я — часть той силы, что вечно хочет зла и вечно совершает благо.

стоит заменить 'не нес' на 'ни нёс'. ящитаю.
0
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
18.08.2021, 22:04 12
Цитата Сообщение от alhaos
Стоит чуть поменять входные параметры и твой код надо будет переписывать, поменяй условие с еденицы на двойку и все, отрицаьельное значение на любое другое, видешь я аргументирую, и весьма осторожен в формулировках и мнениях, а ты оскорбляетшь без аргументации. Ты неприятный собеседник, какое бы благо ты не нес.
Ну, никто тебе не запрещает самоутверждаться, особенно по части контраргументации. Перечитай условия задачи ровно столько, чтобы понять наконец: человека интересует именно единица. Было б в условии указано абстрагироваться от этой самой единицы, решение было бы в ином ключе. Ровно как пора бы запомнить диапазоны типов данных:
PowerShell
1
('in', 'ax').ForEach{[Byte]::"M$($_)Value"} -join '..'
Это значит, будь на месте единицы отрицательное значение, pwsh попросту послал бы тебя туда, куда и следовало бы послать.
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,450
Записей в блоге: 42
18.08.2021, 23:34 13
greg zakharov, не ждал от тебя утверждения столь очевидного...
0
0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 33
19.08.2021, 04:10  [ТС] 14
До этого был XSLT, но возникла необходимость делить исходный файл на два после обработки
0
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
19.08.2021, 10:51 15
Цитата Сообщение от PussyDestroyer3
До этого был XSLT, но возникла необходимость делить исходный файл на два после обработки
XSLT конечно не поделит файл, но зато вполне может представлять из себя шаблон сбора нужных узлов с их последующим преобразованием. К слову, код pwsh на самом деле создаст только один новый XML (где ключевой является единица); второй XML можно сформировать либо параллельно в цикле, либо после формирования первого документа путём сравнения. Есть и другие способы, всё зависит от того насколько велик XML.
0
Модератор
Эксперт Hardware
24563 / 14016 / 2404
Регистрация: 23.11.2016
Сообщений: 69,714
Записей в блоге: 36
21.08.2021, 15:51 16
 Комментарий модератора 
greg zakharov, Оскорбления запрещены! Это не обсуждается. Исключений не будет. Учимся вести себя цивилизованно. Я предупредил.


alhaos, В случае повторения - не ввязываемся в ссоры, а катаем жалобу. Прошу Вас, это не сложно, но мне - очень поможет. Кнопка - треугольный знак "Обратить внимание"
0
5981 / 1990 / 323
Регистрация: 10.12.2013
Сообщений: 6,854
21.08.2021, 20:55 17
Захарыч, так любой код превращается в говнокод непосредственно с момента его опубликования ))

По определению.
0
Модератор
Эксперт Hardware
24563 / 14016 / 2404
Регистрация: 23.11.2016
Сообщений: 69,714
Записей в блоге: 36
22.08.2021, 09:30 18
Что делает код говнокодом — никто точно не знает. Точного определения нет. Часто то, что одни считают очевидным говнокодом, другим кажется лаконичным и эффективным решением.
https://habr.com/ru/post/116842/

Поэтому давайте-ка все свои имхи высказывать культурно и цивилизованно.

 Комментарий модератора 
Имеете код - предлагайте. Имеете замечания - излагайте. Культурно и цивилизованно. А всякие выкрики типа я дартаньян а вы все - так себе - будут выморожены, и зачинщики наказаны. Исключений не будет.
Я понятно излагаю? Я предупредил.
0
1329 / 489 / 137
Регистрация: 20.02.2019
Сообщений: 2,450
Записей в блоге: 42
22.08.2021, 13:29 19
Цитата Сообщение от kumehtar Посмотреть сообщение
В случае повторения - не ввязываемся в ссоры, а катаем жалобу. Прошу Вас, это не сложно, но мне - очень поможет. Кнопка - треугольный знак "Обратить внимание"
Жаловаться да еще и на Грега, не морально этические принципы не позволят, а вот про "не ввязываться" это пожалуй да...
0
Модератор
Эксперт Hardware
24563 / 14016 / 2404
Регистрация: 23.11.2016
Сообщений: 69,714
Записей в блоге: 36
22.08.2021, 13:45 20
Цитата Сообщение от alhaos Посмотреть сообщение
Жаловаться да еще и на Грега, не морально этические принципы не позволят
Это вам тут не реал. Не стоит переносить понятия и привычки из реала сюда. Поймите, в реале - это в реале, там действуют немного другие правила. В реале можно главное: можно видеть того, кто пытается скандалить, и адекватно на это отреагировать. А здесь - многие понимают, что никто не сможет их вытащить за шкирняк и спросить - чего это ты тут. Поэтому очень трудно поддерживать дисциплину и адекват. Здесь жалобы - это не как в милицию, я вам не милиция. Здесь - это как в гостях. Этот ресурс - это частный ресурс. Как бы есть большой дом, хозяин которого приглашает в гости. Он очень рад гостям, любит обсуждения и дискуссии, но просит не скандалить только. А я вот - типа доверенное лицо хозяина, которого он попросил присмотреть тут. И чем быстрее я узнаю про проблему - тем легче станет вам же, как и всем присутствующим. Понимаете?
0
22.08.2021, 13:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2021, 13:45
Помогаю со студенческими работами здесь

XML, изменение атрибутов
Доброго времени суток! Столкнулся с такой вот задачей : у меня есть xml файл в котором я храню...

Изменение атрибутов в XML файле
Есть xml файл с настройками программы: &lt;Settings Second_name=&quot;Иванов&quot; First_name=&quot;Д.&quot;...

Динамическое изменение атрибутов в xml
В xml-шаблоне, показанном ниже, мне нужно изменить по определённому действию пользователя атрибут...

Изменение атрибутов XML после удаления узла
Такая проблема &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;Animals&gt; &lt;Dinosaur ID=&quot;1&quot;&gt; ...

Изменение атрибутов в Xml файле через Textbox в WPF
Здравствуйте! Нужна помощь, не могу понять как можно редактировать xml файл так, что бы он не...

Наследование определенных атрибутов.
Проектирую объектную модель и возникла такая ситуация:у базового класса есть атрибут необходимый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru