0

私の Java コードは、ローカルの ActiveMQ キューから XML メッセージを取得しています。キューからメッセージを正常に消費できるようになりましたが、解析に失敗しているようですか? 私のxmlデータは次のようになります。

 #---------- #1 :  ----------#
 <MSG_INFO>
    <message type="TextMessage" messageSelector="" originationTimestamp="" receiveTime="" jmsServerTimestamp="" jmsMsgExpiration="">
     <header JMSDestination="Asurion.SYD02.Q.Business.NonPersistent.Policy.PublishTelstraAMAEnrollments" JMSDestinationType="Queue" JMSDeliveryMode="1" />
        <properties>
        <property name="Client" type="String">Telstra</property>
       </properties>
    </message>
 </MSG_INFO>
 BodyLength=850
 <?xml version="1.0" encoding="UTF-8"?>
 <ns0:PublishEnrollmentRequest xmlns:ns0="http://services.asurion.com/schemas/PolicyAdministration/PublishEnrollmentRequest/1.0">
  <ns0:Parameters>
    <ns0:Enrollments>
        <ns0:MDN>9890667692</ns0:MDN>
        <ns0:FeatureCode>MBBPHPMPS</ns0:FeatureCode>
        <ns0:ProductName>MTS-SA</ns0:ProductName>
        <ns0:Status>Active</ns0:Status>
        <ns0:Active>Y</ns0:Active>
        <ns0:EffectiveDate>2013-07-02T19:36:51-04:00</ns0:EffectiveDate>
        <ns0:EnrollmentType>Customer</ns0:EnrollmentType>
        <ns0:Make>UnKnown</ns0:Make>
        <ns0:Model>UnKnown</ns0:Model>
        <ns0:ActivationDate>2013-07-02T19:36:51-04:00</ns0:ActivationDate>
        <ns0:ESN />
        <ns0:IMEI />
        <ns0:SubID>281474977839805</ns0:SubID>
        <ns0:Operation>Enrollment Added</ns0:Operation>
    </ns0:Enrollments>
</ns0:Parameters>

私が今得ている例外は次のとおりです。

  Caused by: org.xml.sax.SAXParseException: Unexpected element: CDATA

この問題の原因が BodyLength tne である可能性があることは理解していますが、それらを取り除くと、私のコードはそこからクライアント情報を抽出できなくなります。

これはコードで構成可能なものですか? ありがとう。

4

2 に答える 2

1

データは整形式の XMLではないため、そのままでは XML パーサーで解析できません。行の前後で XML データを分離し、BodyLength=850それらを個別に解析する方法を見つける必要があります。

于 2013-08-17T10:37:31.650 に答える