将XML加载到MySQL(标签和值)

时间:2017-06-17 20:27:38

标签: php mysql xml

我有一个XML文件要加载到MySQL中,但它是使用标签和值生成的,而不是完全限定的。

所以而不是

<book>
<name>Lord of the Flies</name>
<author>William Golding</author>
</book>
<book>
<name>War and Peace</name>
<author>Leo Tolstoy</author>
</book>

就像

<book>
<label>name</label>
<value>Lord of the Flies</value>
<label>author</label>
<value>William Golding</value>
</book>
<book>
<label>name</label>
<value>War and Peace</value>
<label>author</label>
<value>Leo Tolstoy</value>
</book>

到目前为止我的代码是 -

   预订为$ mybooks){     $标签= $ mybooks-&GT;标签;     $值= $ mybooks-&GT;值;     echo“$ label - $ value”;     }     }     ?&GT;

然后输出

Lord of the Flies - William Golding
War and Peace - Leo Tolstoy

问题是,这里没有对我可用于在MySQL表中映射它的字段名称的引用。

使用PHP将这些变量读入变量以进入MySQL表(字段 - 名称,作者)的最佳方法是什么?

由于

史蒂夫

1 个答案:

答案 0 :(得分:0)

您可以使用...

访问数据
<?php
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );

$xml = <<< XML
<books>
<book>
<label>name</label>
<value>Lord of the Flies</value>
<label>author</label>
<value>William Golding</value>
</book>
<book>
<label>name</label>
<value>War and Peace</value>
<label>author</label>
<value>Leo Tolstoy</value>
</book>
</books>
XML;

$doc = simplexml_load_string($xml);

foreach ( $doc->book as $book )   {
    echo $book->label[0]."=".$book->value[0]."\n";
    echo $book->label[1]."=".$book->value[1]."\n";
}

我已将书籍元素包装到顶级XML元素中,使其成为有效的文档。

这是使用simplexml加载的,然后foreach只是遍历书籍。

标签和值将是每个元素中的数组,因此标签[0]用于值[0]。您可以使用count($ book-&gt;标签)来计算出有多少元素。

以上代码将输出...

name=Lord of the Flies
author=William Golding
name=War and Peace
author=Leo Tolstoy