使用php从xml文件中获取标记值

时间:2014-04-19 09:42:59

标签: php xml domxpath

我有一个xml文件,我想得到完全第二个数组标记。我如何在php

中使用DOMXpath获得此功能

这是xml文件结构示例

<?xml version="1.0" encoding="UTF-8"?>
<list version="1.0">
  <dict>
    <key>ID</key>
    <string>F9B4F4B6-D0C0-10BA-8DB8-35534DD58C23</string>
    <key>Items</key>
    <array>
      <dict>
        <key>frameThickness</key>
        <real>7</real>
        <key>graphicsHeight</key>
        <integer>800</integer>
        <key>graphicsWidth</key>
        <integer>800</integer>
        <key>location</key>
        <integer>4</integer>
      </dict>
    </array>

    <key>base64Data</key>
    <array>
        <string>Image1</string>
        <data>VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==</data>
        <string>Image2</string>
        <data>VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==</data>  
   </array>

  </dict>
</list>

我需要第二个数组标签内的标签这是我到目前为止所尝试的

$xpath_to_base64 = new DOMXpath($dom);
$base64_data = $xpath_to_base64->query("/list/dict/array");

foreach($base64_data as $array)
{
    print_r($base64_data);
} 

上面返回两个数组标签,但我只需要第二个。我能得到那个 这就是我想要的东西

    </array>
    <key>base64Data</key>
    <array>
        <string>Image1</string>
        <data>VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==</data>
        <string>Image2</string>
        <data>VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==</data>  
   </array>

1 个答案:

答案 0 :(得分:0)

$base64_data = $xpath_to_base64->query("/list/dict/array[1]");