我需要将具有多个复杂元素的XML文件转换为平面结构。这是我的大型xml文件的示例结构,需要将其格式化为所需输出中的平面结构。
输入Xml-
<?xml version="1.0" encoding="UTF-8"?>
<tns:Response xmlns:tns="http://www.example.org/response" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/response response.xsd ">
<tns:Consumer>
<tns:ConsumerID>tns:ConsumerID</tns:ConsumerID>
<tns:Relation>
<tns:ParentEntity>
<tns:PEID>PE1</tns:PEID>
<tns:Customer>
<tns:CustID>1</tns:CustID>
<tns:Relation>
<tns:ParentEntity>
<tns:PEID>PE2</tns:PEID>
<tns:Customer/>
<tns:Account/>
</tns:ParentEntity>
<tns:ChildEntity>
<tns:CEID>CE1</tns:CEID>
<tns:Customer/>
<tns:Account/>
</tns:ChildEntity>
</tns:Relation>
</tns:Customer>
<tns:Account>
<tns:AccountId>1</tns:AccountId>
<tns:Relation>
<tns:ParentEntity>
<tns:PEID>PE3</tns:PEID>
<tns:Customer/>
<tns:Account/>
</tns:ParentEntity>
<tns:ChildEntity>
<tns:CEID>CE2</tns:CEID>
<tns:Customer/>
<tns:Account/>
</tns:ChildEntity>
</tns:Relation>
</tns:Account>
</tns:ParentEntity>
<tns:ChildEntity>
<tns:CEID>CE3</tns:CEID>
<tns:Customer>
<tns:CustID>1</tns:CustID>
<tns:Relation>
<tns:ParentEntity>
<tns:PEID>PE4</tns:PEID>
<tns:Customer/>
<tns:Account/>
</tns:ParentEntity>
<tns:ChildEntity>
<tns:CEID>CE4</tns:CEID>
<tns:Customer/>
<tns:Account/>
</tns:ChildEntity>
</tns:Relation>
</tns:Customer>
<tns:Account>
<tns:AccountId>1</tns:AccountId>
<tns:Relation>
<tns:ParentEntity>
<tns:PEID>PE5</tns:PEID>
<tns:Customer/>
<tns:Account/>
</tns:ParentEntity>
<tns:ChildEntity>
<tns:CEID>CE5</tns:CEID>
<tns:Customer/>
<tns:Account/>
</tns:ChildEntity>
</tns:Relation>
</tns:Account>
</tns:ChildEntity>
</tns:Relation>
</tns:Consumer>
</tns:Response>
必需的输出XML-
<?xml version="1.0" encoding="UTF-8"?>
<tns:Response xmlns:tns="http://www.example.org/Required" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/Required Required.xsd ">
<tns:Consumer>
<tns:Customer>
<tns:CustID>tns:CustID</tns:CustID>
</tns:Customer>
<tns:Account>
<tns:AccountId>tns:AccountId</tns:AccountId>
</tns:Account>
<tns:Customer>
<tns:CustID>tns:CustID</tns:CustID>
</tns:Customer>
<tns:Account>
<tns:AccountId>tns:AccountId</tns:AccountId>
</tns:Account>
<tns:Customer/>
<tns:Account/>
<tns:Customer/>
<tns:Account/>
</tns:Consumer>
</tns:Response>
输出xml只需要在平面结构中具有customer和Account复杂元素。如何使用XSLT实现这一目标。任何帮助表示赞赏。 提前致谢。
答案 0 :(得分:0)
我不确定您所说的“平面地图”是什么意思,因为您的{
"error": "access_denied",
"error_description": "Invalid CSRF Token '5c76e875-1f49-4a29-97f2-beacc6082b0e' was found on the request parameter '_csrf' or header 'X-XSRF-TOKEN'."
}
-Customer
结构定义了与父母和孩子的关系。这是一个XSLT代码段,用于仅平整XML中提到的所有Account
和Customer
。可以调整为仅在每个级别上使用子级。但是我无法通过分析您的预期结果来确切地找到它,因为在XML输入中没有与ID对应的匹配ID:
Account