Ich habe ein XML-Dokument und will es in einen JSON-String verwandeln:Trans atrribute in XML zu JSON
<?xml version="1.0" encoding="UTF-8"?>
<root name="test-root">
<id lang="en">9876</id>
<jobCode name="Teacher" xmlns:teacher="http://example.com/ns/teacher">1009</jobCode>
</root>
ich diese benutzerdefinierte Konfiguration verwenden, es zu tun:
let $config := json:config("custom")
let $_ := map:put($config, "whitespace", "ignore")
let $_ := map:put($config, "ignore-attribute-names",(xs:QName("name"),xs:QName("lang")))
return json:transform-to-json(fn:doc("/test1.xml"),$config)
Unten ist die Ausgabe dieses Skripts:
{
"root": {
"id": "9876",
"jobCode": "1009"
}
}
Es ist nicht das, was ich erwartet hatte, ich die aufnehmen möchten name Attribute in Elemente root aber ignorieren die Name Attribute in Elemente jobcode. Was ich erwartet habe, ist wie folgt:
{
"root": {
"name": "test-root",
"id": "9876",
"jobCode": "1009"
}
}
Wie kann ich die Konfiguration anpassen, um diese Ausgabe zu bekommen? Vielen Dank!
Das ist wirklich großartig! Vielen Dank!!! Durch die Kombination des styleSheet mit der JSON-API können wir eine komplexere benutzerdefinierte Transformation durchführen. –
Ja, Sie können Ihren XML-Code auch direkt in die serialisierte Version des JSON-Transformationscodes umwandeln (suchen Sie im Installationsverzeichnis nach ./Config/json.xsd als Referenz). Das lässt der Fantasie nichts im Wege und Sie können genau die Ergebnisse erzielen, die Sie sich wünschen. Verstehen Sie auch, dass, wenn es ein xsd für Ihr XML gibt, der Transformator versuchen wird, sein Bestes zu geben, um damit zu beginnen (aber das hätte Ihre Herausforderung nicht adressiert). Wenn die ursprüngliche Antwort/Probe wirklich eine akzeptable Lösung für Sie ist, markieren Sie bitte die Antwort, um dies zu reflektieren. –