Mijn vraag
Ik heb een vraag met betrekking tot een XML file die ik via een API ophaal. In deze xml zit een stuk genaamd "ParentCategoryPaths" welke bestaat uit een aantal "ParentCategoryPaths". Hiervan moet ik de "ParentCategories" van selecteren welke de meeste elementen erin heeft staan. In onderstaand voorbeeld is dat dan diegene met "Waterkokers" erin (de voorlaatste).
Op dit moment gebruik ik:
xmlstarlet sel --net -t -m '/SearchResults/Products/ParentCategoryPaths/ParentCategories' -n -v "concat(id, ';', name, /n)"
echter geeft deze dus alles terug en als ik [last()] toevoeg krijg ik alsnog de verkeerde. Omdat dit mogelijk nooit op dezelfde plek zit of een zelfde aantal heb zou ik graag iets hebben wat robuuster werkt dan het gokken wat ik nu steeds doe.
Heeft iemand een idee hoe ik alleen de "ParentCategoryPaths" kan aanhouden met daarin de meeste "ParentCategories". Om het eventueel heel specifiek te maken zou de laatste "ParentCategories" van dat betreffende path ook al goed (nog beter zelfs) zijn.
Ik heb een vraag met betrekking tot een XML file die ik via een API ophaal. In deze xml zit een stuk genaamd "ParentCategoryPaths" welke bestaat uit een aantal "ParentCategoryPaths". Hiervan moet ik de "ParentCategories" van selecteren welke de meeste elementen erin heeft staan. In onderstaand voorbeeld is dat dan diegene met "Waterkokers" erin (de voorlaatste).
Op dit moment gebruik ik:
xmlstarlet sel --net -t -m '/SearchResults/Products/ParentCategoryPaths/ParentCategories' -n -v "concat(id, ';', name, /n)"
echter geeft deze dus alles terug en als ik [last()] toevoeg krijg ik alsnog de verkeerde. Omdat dit mogelijk nooit op dezelfde plek zit of een zelfde aantal heb zou ik graag iets hebben wat robuuster werkt dan het gokken wat ik nu steeds doe.
Heeft iemand een idee hoe ik alleen de "ParentCategoryPaths" kan aanhouden met daarin de meeste "ParentCategories". Om het eventueel heel specifiek te maken zou de laatste "ParentCategories" van dat betreffende path ook al goed (nog beter zelfs) zijn.
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
| <SearchResults> <OriginalRequest/> <TotalResultSize>1</TotalResultSize> <Products> <Id>9200000010322377</Id> <EAN>8004399771970</EAN> <GPC>KIT</GPC> <Title> </Title> <SpecsTag>De'Longhi</SpecsTag> <Summary>Grote waterkoker | Kan van: Aluminium</Summary> <Rating>42</Rating> <ParentCategoryPaths> <ParentCategories> <id>3136</id> <name>Elektronica</name> </ParentCategories> <ParentCategories> <id>10768</id> <name>Keukenapparaten</name> </ParentCategories> </ParentCategoryPaths> <ParentCategoryPaths> <ParentCategories> <id>3136</id> <name>Elektronica</name> </ParentCategories> <ParentCategories> <id>10768</id> <name>Keukenapparaten</name> </ParentCategories> <ParentCategories> <id>10803</id> <name>Waterkokers</name> </ParentCategories> </ParentCategoryPaths> <ParentCategoryPaths> <ParentCategories> <id>3136</id> <name>Elektronica</name> </ParentCategories> </ParentCategoryPaths> </Products> </SearchResults> |
-Te huur