我无法访问此XML文件中的和标签。我设法找到了中的标签,但似乎无法为产品中的标签做到这一点。我希望有人可以对此提供帮助。抱歉,我的密码不正确,我还是刚开始使用neo4j ^^“。
<?xml version="1.0" encoding="UTF-8"?>
<drugbank xmlns="http://www.drugbank.ca" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.drugbank.ca http://www.drugbank.ca/docs/drugbank.xsd" version="5.1" exported-on="2020-07-02">
<drug type="biotech" created="2005-06-13" updated="2020-06-12">
<name>Lepirudin</name>
<state>liquid</state>
<synonyms>
<synonym language="english" coder="">Hirudin variant-1</synonym>
<synonym language="english" coder="">Lepirudin recombinant</synonym>
</synonyms>
<products>
<product>
<name>Refludan</name>
<route>Intravenous</route>
</product>
<product>
<name>Refludan</name>
<route>Intravenous</route>
</product>
</products>
</drug>
</drugbank>
CALL apoc.load.xml("file:///df.xml")
YIELD value
UNWIND value._children AS drug
WITH drug.type AS drugtype,
[item in drug._children WHERE item._type = "name"][0] AS name,
[item in drug._children WHERE item._type = "state"][0] AS state,
[item in drug._children WHERE item._type = "synonyms" | item._children][0] AS synonyms,
[item in drug._children WHERE item._type = "products" | item._children][0][0] AS products
MERGE (d:Droge {label: name._text})
SET d.state = state._text
SET d.name = name._text
MERGE (s:State {label: state._text})
SET s.state = state._text
MERGE (s)-[:State_off]->(d)
FOREACH (item in synonyms |
MERGE (syn:Synonym {label: item._text})
SET syn.language = item.language
MERGE (syn)-[:Synonym_off]->(d) )
RETURN *;