我有一个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表(字段 - 名称,作者)的最佳方法是什么?
由于
史蒂夫
答案 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