Ich versuche, die folgende Equipment.XML in Neo4j Datenbank zu laden -Neo4j Chiffre Parse und laden XML
<NetworkEntity>
<Equipment>
<Name>IPTC.net/ABC12345</Name>
<Type>CHASSIS</Type>
<SubType>Nokia 7750</SubType>
</Equipment>
<Equipment>
<Name>IPTC.net/ABC12345/Shelf-1</Name>
<Type>SHELF</Type>
<SubType>Nokia 7750</SubType>
<Associations>
<Association>
<Target>
<EntityName>IPTC.net/ABC12345</EntityName>
<EntityType>Equipment</EntityType>
</Target>
<RelationshipType>RESIDES_ON</RelationshipType>
<Features>
<Feature>
<Name>Feat1</Name>
<Value>123</Value>
</Feature>
</Features>
</Association>
</Associations>
</Equipment>
</NetworkEntity>
ich folgende Chiffre Prozedur geschrieben haben bisher -
call apoc.load.xml("file:///opt/home/neo4j/NEO4JINSTANCE1/neo4j-enterprise-3.0.1/import/Equipment.xml")
yield value as ne UNWIND ne._children AS eqs
FOREACH(eq IN eqs |
FOREACH(child IN eq["_children"] |
CREATE (:SPAEquipment {name: child["_text"]})))
RETURN *;
Aber es ist Berücksichtigung jeder Eigenschaft des Equipment-Tags als separate SPAEquipment. Daher Name, Typ und Untertyp - jeder wird als SPAEquipment anstelle von drei Eigenschaften desselben SPAEquipments erstellt. Also anstelle von Kindern sollte ich verschiedene Tags verwenden. Ich bin auch nicht in der Lage, die Verbindung zwischen den Geräten ganz korrekt zu erstellen.
Also, im Grunde muss ich die verschiedenen Geräte in der Datenbank mit den entsprechenden Eigenschaften erstellen und auch ich muss die Beziehungen zwischen ihnen erstellen.
Hallo @pwsaker: Vielen Dank für die schnelle Antwort. Ich habe folgendes formuliert - '... FOREACH (eq IN eqs | ERSTELLEN (e.NSEquipment)) FOREACH (Kind IN eq [" _ Kinder "] | gesetzt e.NSEquipment.propertyName = Kind [" Text " ]) foreach (Kind in Gleichung [ „_ Kinder“] | überprüfen Sie, ob Verbände Feld vorhanden ist Wenn ja, eine RESIDES_ON Beziehung mit dem Ziel Und schaffen Eigenschaften der Beziehung zu schaffen; ' Aber ich bin nicht in der Lage schreibe die Aussagen richtig auf. –