Я пытаюсь найти лучший подход для пользовательского синтаксического анализа объекта JSON в XML-документ.
Учитывая следующий JSON (я использую JSON.org):
{"CfgAccessGroup":{"CfgGroup":{"capacityRuleDBID":{"value":0},"DBID":{"value":97},"siteDBID":{"value":0},"name":{"value":"EVERYONE"},"quotaTableDBID":{"value":0},"contractDBID":{"value":0},"state":{"value":1},"capacityTableDBID":{"value":0},"tenantDBID":{"value":1}},"xmlns":"http://schemas.genesyslab.com/Protocols/Configuration/ConfServer/2005/","type":{"value":6},"memberIDs":{"CfgID":[{"CSID":{"value":0},"DBID":{"value":5195},"type":{"value":3}},{"CSID":{"value":0},"DBID":{"value":12854},"type":{"value":3}},{"CSID":{"value":0},"DBID":{"value":12863},"type":{"value":3}},{"CSID":{"value":0},"DBID":{"value":5808},"type":{"value":3}}]}}}
Я попытался в основном преобразовать JSON в XML, выполнив:
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = db.parse(new InputSource(new StringReader(XML.toString(object))));
Однако на выходе получается:
<CfgAccessGroup>
<CfgGroup>
<capacityRuleDBID>
<value>
0
</value>
</capacityRuleDBID>
...
<CfgGroup>
</CfgAccessGroup>
Мне нужно, чтобы это было:
...
<capacityRuleDBID value=0 />
...
Честно говоря, не знаю, с чего начать.




Если вам нужен точный контроль над элементами и атрибутами сгенерированного XML, можно использовать XSLT-преобразование.
Concur. Никакая стандартная библиотека преобразования JSON в XML не всегда предоставит вам именно тот XML, который вам нужен. Некоторые дают больше контроля, чем другие, но, в конце концов, если вы точно знаете, чего хотите, вам придется заняться кодированием; и наиболее практичный способ - получить результат библиотечного метода, а затем применить XSLT для его преобразования. (Следовательно, один из подходов - использовать метод XSLT 3 json-to-xml () в качестве первого шага, за которым следует настраиваемое преобразование).
может это поможет stackoverflow.com/questions/4056419/…