1

嘿,我有一个 XML 文件,其中包含一些与此类似的信息:

<root>
 <library>
   <name>TestName1</name>
   <location>TestLocation1</location>
 </library>
 <library>
   <name>TestName2</name>
   <location>TestLocation2</location>
 </library>
 <book>
   <name>Book1</name>
   <author>Author1</author>
 </book>
 <book>
   <name>Book2</name>
   <author>Author2</author>
 </book>
</root>

我所做的是创建一个数组来存储信息数组。然而,我的问题在于试图只归还书籍或图书馆。

$xml = "libraries.xml";
$array_libraries = array();
$library = simplexml_load_file($xml);

foreach($library as $get_library) {
$name = $get_library->name;
$location = $get_library->location;
array_push($array_albums, array($name, $location));
}

如果可能的话,我想将书籍和图书馆保存在同一个文件中,但我只想将图书馆放入数组中,提前谢谢你:-)

4

3 回答 3

2

您只需要遍历库,而不仅仅是整个 XML。

改变:

foreach($library as $get_library) {

foreach($library->library as $get_library) {

附带说明一下,SimpleXML 并不是处理 XML 的最佳选择。考虑改用DOMDocument

于 2012-10-19T15:17:58.313 回答
0

你定义一个数组,

$array_libraries = array();

然后你推入另一个数组

array_push($array_albums, array($name, $location));

尝试推入先前声明的数组:

array_push($array_libraries, array($name, $location));
于 2012-10-19T15:17:48.017 回答
0

这可能很有用

$xml = "libraries.xml";
$array_libraries = array();
$array_albums = array();
$library = simplexml_load_file( $xml );

foreach( $library as $get_library => $x ) {
    $name = $x->name;
    $location = $x->location;
    if ( $get_library === 'library' ) {
        array_push( $array_libraries, array( $name, $location ) );
    }
    if ( $get_library === 'book' ) {
        array_push( $array_albums, array( $name, $location ) );
    }
}

如果您只想要库,则只保留 if 并删除/评论另一个库,如果您想要两个库,那么您已经有一个工作示例。

再见

于 2012-10-19T15:30:15.780 回答