gpt4 book ai didi

php - 如何将可重复的 xml 子标签导入一个 mysql 列

转载 作者:行者123 更新时间:2023-11-30 21:35:44 25 4
gpt4 key购买 nike

我在将 xml 中的子标签聚合到 mysql 中的同一列时遇到问题。

<content>
<Article>
<ArticleTitle>Idque Caesaris facere voluntate liceret: sese habere.</ArticleTitle>
<Abstract>
<AbstractText Label="INTRODUCTION" NlmCategory="BACKGROUND">Phasellus laoreet.</AbstractText>
<AbstractText Label="METHODS" NlmCategory="METHODS">Plura mihi bona.</AbstractText>
<AbstractText Label="RESULTS" NlmCategory="RESULTS">Curabitur blandit.</AbstractText>
<AbstractText Label="CONCLUSIONS" NlmCategory="CONCLUSIONS">Morbi fringilla convallis sapien, id pulvinar odio volutpat.</AbstractText>
<CopyrightInformation>Copyright © 2018.</CopyrightInformation>
</Abstract>
<AuthorList>
<Author >
<LastName>Smith</LastName>
<ForeName>John</ForeName>
<Initials>JS</Initials>
</Author>
<Author >
<LastName>Brown</LastName>
<ForeName>Jake</ForeName>
<Initials>JB</Initials>
</Author>
<AuthorList>
</Article>

<Article>
<ArticleTitle>Contra legem facit qui id facit quod lex prohibet.
</ArticleTitle>
<Abstract>
<AbstractText>Phasellus laoreet.</AbstractText>
</Abstract>
<AuthorList>
<Author>
<LastName>Bond</LastName>
<ForeName>James</ForeName>
<Initials>JB</Initials>
</Author>
<Author >
<LastName>Bourne</LastName>
<ForeName>Jason</ForeName>
<Initials>JB</Initials>
</Author>
</AuthorList>
</Article>
</content>

我的 php 代码:

$context  = stream_context_create(array('http' => array('header' => 'Accept: application/xml')));
$url = 'scripts/testy.xml';
$xml = file_get_contents($url, false, $context);
$xml = simplexml_load_string($xml) or die("ERROR: Cannot create SimpleXML object");
foreach ($xml->content as $item) {
$title = $item->Article->ArticleTitle;`enter code here`

foreach($item->Article->Abstract->children() as $textNode) {
$abstract_text=$textNode;
}
$sql = "INSERT INTO testy (title, abstract)
VALUES (:title, :abstract)";

$stmt = $conn->prepare($sql);
$stmt->bindParam(':title', $title, PDO::PARAM_STR);
$stmt->bindParam(':abstract', $abstract_text, PDO::PARAM_STR);
$stmt->execute();
}

现在“标题”工作正常,抽象导入很好,只有一个标签 - 对于更多这样的标签 - 导入只是最后一个。预期的 mysql 表包含所有“AbstractText”和“CopyrightInformation”标签的聚合数据以及下一列作者,如“Jame Bond,Jason Bourne”。

最佳答案

你不想连接字符串吗?注意 .=.

$abstract_text= "";
foreach($item->Article->Abstract->children() as $textNode) {
$abstract_text .= $textNode;
}

关于php - 如何将可重复的 xml 子标签导入一个 mysql 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53942469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com