Convertir XML spécifique de la structure JSON avec powershell
Besoin d'une aide à la conversion d'un fichier xml spécifique de la structure json.
XML ressemblerait à ceci,
<DataGrid>
<DataRow>
<RowID>1</RowID>
<Date>26/10/2014</Date>
<Owner>ABC Company</Owner>
<Make>Mitsubishi</Make>
<Model_Family>Lancer</Model_Family>
<Submodel>Lancer 2.0 GSR Hatch CVT</Submodel>
<Origin/>
<CC_Rating>1997</CC_Rating>
<Weight>2000</Weight>
</DataRow>
<DataRow>
<RowID>2</RowID>
<Date>26/10/2014</Date>
<Owner>ABC Company</Owner>
<Make>Mazda</Make>
<Model_Family>Axela</Model_Family>
<Submodel/>
<Origin>Japan</Origin>
<CC_Rating>1497</CC_Rating>
<Weight/>
</DataRow>
<DataRow>
<RowID>3</RowID>
<Date>26/10/2014</Date>
<Owner>Test Company</Owner>
<Make>Kia</Make>
<Model_Family>Sorento</Model_Family>
<Submodel/>
<Origin>Korea</Origin>
<CC_Rating>2200</CC_Rating>
<Weight>2500<Weight>
</DataRow>
<DataRow>
<RowID>4</RowID>
<Date>26/10/2014</Date>
<Owner>Test Company</Owner>
<Make>Nissan</Make>
<Model_Family>Pathfinder</Model_Family>
<Submodel>SUV<Submodel>
<Origin>Japan</Origin>
<CC_Rating>2000</CC_Rating>
<Weight>2000<Weight>
</DataRow>
Il peut y avoir un ou plusieurs fichiers dans le format ci-dessus, mon exigence est de lire tous ces fichiers et de les regrouper par Propriétaire et l'appel d'un service web REST par la conversion de ceux de l'objet JSON. Requis format JSON sera comme suit.
{
"batches": [
{
"Owner": "ABC Company",
"Date": "2014-10-26",
"Vehicles": [
{
"Make": "Mitsubishi",
"ModelFamily": "Lancer",
"SubModel": "Lancer 2.0 GSR Hatch CVT",
"Origin": null
"CcRating": "1997",
"Weight": "2000"
},
{
"Make": "Mazda",
"ModelFamily": "Axela",
"SubModel": null,
"Origin": "Japan",
"CcRating": "1497",
"Weight": null
}
]
},
{
"Owner": "Test Company",
"Date": "2014-10-26",
"Vehicles": [
{
"Make": "Kia",
"ModelFamily": "Sorento",
"SubModel": null,
"Origin": "Korea",
"CcRating": "2200",
"Weight": "2500"
},
{
"Make": "Nissan",
"ModelFamily": "Pathfinder",
"SubModel": "SUV",
"Origin": "Japan",
"CcRating": "2000",
"Weight": "2000"
}
]
}
]
}
Ce besoin d'être fait à l'aide de windows powershell, Iam java gars et n'ont aucune idée de comment le faire à l'aide de powershell à l'exception de l'appel de serveur ftp et de lire tous les fichiers xml.
Vraiment apprécier, si quelqu'un pouvait m'aider ce.
OriginalL'auteur bluelabel | 2014-11-03
Vous devez vous connecter pour publier un commentaire.
XML Trucs
Powershell a quelques trucs pour travailler avec XML. Tout d'abord, il a un natif
[XML]
type de données. Vous pouvez convertir des chaînes de caractères au format XML comme suit:La
ConvertTo-Xml
cmdlet prend une chaîne ou d'un autre objet et de les convertir en XML, soit comme un Document XML (objet), une chaîne, ou un flux de données (tableau de chaînes de caractères). Vous pouvez passer une chaîne de caractères, ou d'un objet:Lecture à Partir d'un Fichier:
De travail avec les Objets XML
Une fois que vous avez votre objet, vous pouvez accéder aux noeuds comme propriétés:
Vous pouvez également utiliser XPATH pour sélectionner un seul nœud ou plusieurs nœuds:
Ou d'en faire un plus de powershell, vous pouvez utiliser le
Select-Xml
applet de commande:Je pars beaucoup d'autres choses, en particulier la manipulation, car il semble que vous avez juste besoin de trouver de l'information et de groupe ensemble.
JSON Trucs
Il n'y a pas beaucoup de choses à savoir à propos de JSON dans powershell.
Utilisation
ConvertFrom-JSON
pour convertir JSON en objet, et l'utilisationConvertTo-JSON
de convertir un objet en une chaîne JSON.Tables de hachage
Parfois appelé hachages ou de l'associer à des tableaux, comme je suis sûr que vous êtes au courant. Dans Powershell vous utiliser comme ceci:
La valeur peut être un tableau, un objet, un autre de hachage, etc.
RESTE
Invoke-RestMethod
est le moyen le plus facile de faire des appels de REPOS dans Powershell (nécessite la version 3.0+).La façon de Procéder
Une fois que vous êtes en mesure d'analyser les informations sur le XML, de construire un ensemble de hachage ou un tableau de hachages qui contient la structure que vous souhaitez, puis de le convertir en JSON:
Prendre note de la façon dont les tableaux et les tables de hachage sont représentés dans le JSON et peut-être changer la façon dont vous êtes en train de construire à obtenir le résultat que vous souhaitez.
Si vous avez des questions spécifiques au sujet d'une méthode ou d'un morceau de code, puis de publier des questions spécifiques sur DONC sur ce morceau.
Références
XML
JSON
RESTE
OriginalL'auteur briantist