如何将xml数据转换为Json。PS:我也有CDATA内容

如何将xml数据转换为Json。PS:我也有CDATA内容,xml,json,xslt,Xml,Json,Xslt,我在xslt中使用了XML到JSON的转换。我使用以下xslt将xml转换为json。问题是我的CDATA内容丢失 <?xml version="1.0" encoding="UTF-8" ?> <Error> <ECId>fc14e3645c3065f2</ECId> <ErrorNumber>SYS003</ErrorNumber> <ErrorDescription>Technical Error&

我在xslt中使用了XML到JSON的转换。我使用以下xslt将xml转换为json。问题是我的CDATA内容丢失

    <?xml version="1.0" encoding="UTF-8" ?>
<Error>
<ECId>fc14e3645c3065f2</ECId>
<ErrorNumber>SYS003</ErrorNumber>
<ErrorDescription>Technical Error</ErrorDescription>
<Timestamp>2015-03-03T17:50:18.185+10:00</Timestamp>
<UserId>1212</UserId>
<ServiceName>POP</ServiceName>
<OperationName>XA_Call</OperationName>
<InitialPayload>
<![CDATA[
<CustomerInformation> <NS1:ProductSystemID>GCIS</NS1:ProductSystemID> <NS1:ProductSystemCustomerID>00000</NS1:ProductSystemCustomerID> <NS1:IntegrationID>00</NS1:IntegrationID> <NS1:BrandName>000</NS1:BrandName> <NS1:LastUpdatedDateTime>2014-11-06-13.50.31.374000</NS1:LastUpdatedDateTime> <NS1:ChangedByUserID>POP</NS1:ChangedByUserID> <NS1:ModificationNo>258</NS1:ModificationNo> <NS1:SourceSystemID>OWF</NS1:SourceSystemID> <NS1:Individual> <NS1:Contact> <CustomerInformation>
]]>
</InitialPayload>
<CausingError>
<SourceErrorDescription>subLanguageExecutionFault</SourceErrorDescription>
</CausingError>
</Error>
PS:我想我需要在下面做些改变:

 <xsl:if test="count(child::*) = 0 and text() and @*">
                <xsl:text>"text" : "</xsl:text><xsl:value-of select="text()"/><xsl:text>"</xsl:text>
            </xsl:if>
谢谢你的帮助

预期产出:

{"Error" : "ECId" : "fc14e3645c3065f2", "ErrorNumber" : "SYS003", "ErrorDescription" : " ", "Timestamp" : "2015-03-03T17:50:18.185+10:00", "UserId" : "1212", "ServiceName" : "POP", "OperationName" : "XA_Call", "InitialPayload" : "<MY XML DATA>", "CausingError" : "SourceErrorDescription" : ""}
谢谢,
我明白了。解决了这个问题。根本不需要解析CDATA。我跳过了这一部分,并稍微调整了XSLT

它很好用

再次感谢

干杯
MS

1。请发布转换的预期输出。2.依我看,最好编写一个符合预期输入的定制XSLT样式表,而不是尝试修改一些通用的、相当不透明的代码。3.请记住,CDATA不是XML,不能解析为XML;您必须将其视为文本,并在必要时将其解析为文本。谢谢Michael,我希望输出如下{Error:ECId:fc14e3645c3065f2,ErrorNumber:SYS003,ErrorDescription:,Timestamp:2015-03-03T17:50:18.185+10:00,UserId:1212,ServiceName:POP,OperationName:XA_Call,InitialPayload:,CausingError:SourceErrorDescription:}:
{"Error" : "ECId" : "fc14e3645c3065f2", "ErrorNumber" : "SYS003", "ErrorDescription" : " ", "Timestamp" : "2015-03-03T17:50:18.185+10:00", "UserId" : "1212", "ServiceName" : "POP", "OperationName" : "XA_Call", "InitialPayload" : "<MY XML DATA>", "CausingError" : "SourceErrorDescription" : ""}