首页 > 解决方案 > 类型不匹配:预期地图但在 apoc 中是 List{map}

问题描述

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<lei:LEIData
    xmlns:lei="http://www.gleif.org/data/schema/leidata/2016" xsi:schemaLocation="http://www.gleif.org/data/schema/leidata/2016 schemas/2016-11-30_LEI-CDF-2-0_XML_Schema_Final.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <lei:LEIHeader>
        <lei:ContentDate>2020-12-08T23:33:04.799Z</lei:ContentDate>
        <lei:Originator>5493001KJTIIGC8Y1R12</lei:Originator>
        <lei:FileContent>LOU_FULL_PUBLISHED</lei:FileContent>
        <lei:RecordCount>118125</lei:RecordCount>
    </lei:LEIHeader>
    <lei:LEIRecords>
        <lei:LEIRecord>
            <lei:LEI>01ERPZV3DOLNXY2MLB90</lei:LEI>
            <lei:Entity>
                <lei:LegalName>Libertyville Bank &amp; Trust Company, N.A.</lei:LegalName>
                <lei:LegalAddress>
                    <lei:FirstAddressLine>507 North Milwaukee Avenue</lei:FirstAddressLine>
                    <lei:City>Libertyville</lei:City>
                    <lei:Region>US-IL</lei:Region>
                    <lei:Country>US</lei:Country>
                    <lei:PostalCode>60048</lei:PostalCode>
                </lei:LegalAddress>
                <lei:HeadquartersAddress>
                    <lei:FirstAddressLine>507 North Milwaukee Avenue</lei:FirstAddressLine>
                    <lei:City>Libertyville</lei:City>
                    <lei:Region>US-IL</lei:Region>
                    <lei:Country>US</lei:Country>
                    <lei:PostalCode>60048</lei:PostalCode>
                </lei:HeadquartersAddress>
                <lei:RegistrationAuthority>
                    <lei:RegistrationAuthorityID>RA000744</lei:RegistrationAuthorityID>
                    <lei:RegistrationAuthorityEntityID>34073</lei:RegistrationAuthorityEntityID>
                </lei:RegistrationAuthority>
                <lei:LegalJurisdiction>US-IL</lei:LegalJurisdiction>
                <lei:LegalForm>
                    <lei:EntityLegalFormCode>8888</lei:EntityLegalFormCode>
                    <lei:OtherLegalForm>N.A.</lei:OtherLegalForm>
                </lei:LegalForm>
                <lei:EntityStatus>ACTIVE</lei:EntityStatus>
            </lei:Entity>
            <lei:Registration>
                <lei:InitialRegistrationDate>2012-06-06T15:54:00.000Z</lei:InitialRegistrationDate>
                <lei:LastUpdateDate>2020-06-22T15:46:49.014Z</lei:LastUpdateDate>
                <lei:RegistrationStatus>ISSUED</lei:RegistrationStatus>
                <lei:NextRenewalDate>2021-06-01T00:31:00.000Z</lei:NextRenewalDate>
                <lei:ManagingLOU>5493001KJTIIGC8Y1R12</lei:ManagingLOU>
                <lei:ValidationSources>FULLY_CORROBORATED</lei:ValidationSources>
                <lei:ValidationAuthority>
                    <lei:ValidationAuthorityID>RA000744</lei:ValidationAuthorityID>
                    <lei:ValidationAuthorityEntityID>34073</lei:ValidationAuthorityEntityID>
                </lei:ValidationAuthority>
            </lei:Registration>
        </lei:LEIRecord>
</lei:LEIRecords>
</lei:LEIData>

我面临的错误。

Neo.ClientError.Statement.TypeError
Type mismatch: expected a map but was List{Map{_type -> String("ContentDate"), _text -> String("2020-12-08T23:33:04.799Z")}, Map{_type -> String("Originator"), _text -> String("5493001KJTIIGC8Y1R12")}, Map{_type -> String("FileContent"), _text -> String("LOU_FULL_PUBLISHED")}, Map{_type -> String("RecordCount"), _text -> String("118125")}}

我正在运行以下命令。

CALL apoc.load.xml("file:///Bloomberg_LEI_data.xml")
YIELD value as lei 
UNWIND lei._children as record
WITH record._children as leirecord
WHERE leirecord._type=("LEIRecord")
RETURN leirecord._children

我想获取 LEI:ID 并将其与其他一些 xml 数据进行比较。(其中也包含 ID )获取这两个 xml 文档之间的关系。

我在 neo4j 数据库中使用 apoc 来获取 xml 文档之间的关系。我错过了什么,如何解决这个问题以及如何在 apoc 中获取两个 xml 文档之间的关系。任何解决此问题的帮助/资源都会非常有帮助。

标签: xmlneo4jneo4j-apoc

解决方案


发生错误的原因是输入的查询不正确并且无法获取 lei 记录详细信息。我仍然不知道,我们如何整合两者,但我似乎找到了一种方法来获取两个 xml 数据集的 id。虽然我有兴趣了解使用 neo4j 和 cypher 查询语言获取 id 和集成两个 xml 数据集的更好答案。


推荐阅读