gpt4 book ai didi

php - 将 XML 元素转换为数组

转载 作者:可可西里 更新时间:2023-11-01 00:52:50 24 4
gpt4 key购买 nike

我有一些简单的 XML,我想将其解析为 PHP 中的数组,以便我可以构建一些动态 SQL 插入。

示例 XML:

<Data>
<Key>1</Key>
<Column>Value 1</Column>
<Column2>Value 2</Column>
</Data>

数据将通过 http POST 传递给 PHP。

最简单的方法是什么?应该总是有一个实例,但希望可以选择从一个 POST 中获取多个实例。

我当然可以构建一些代码来解析特定的 PHP,但我想使用一段代码来动态处理数据,以便它可以用于为多个表创建插入。

最佳答案

好吧,假设你想要一个结果

array(
1 => array(
'Value 1',
'Value 2',
)
)

假设一个结构

<root>
<Data>
<!-- key and column entities -->
</Data>
<Data>
<!-- key and column entities -->
</Data>
<Data>
<!-- key and column entities -->
</Data>
</root>

你可以做类似的事情(我更喜欢 DomDocument ):

$dom = new DomDocument();
$dom->loadXml($xmlString);
$dataElements = $dom->getElementsByTagName('Data');
$array = array();
foreach ($dataElements as $element) {
$subarray = array();
foreach ($element->childNodes as $node) {
if (!$node instanceof DomElement) {
continue;
}
$key = $node->tagName;
$value = $node->textContent;
$subarray[$key] = $value;
}
$array[] = $subarray;
}

通过修改,它会变成:

<root>
<Data>
<Key>4</Key>
<Foo>Bar</Foo>
</Data>
<Data>
<Key>6</Key>
<Bar>Baz</Bar>
</Data>
</root>

进入:

array(
array(
'Key' => 4,
'Foo' => 'Bar',
),
array(
'Key' => 6,
'Bar' => 'Baz',
),
)

关于php - 将 XML 元素转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3477819/

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