Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要帮助解析xml吗_Php_Mysql_Xml - Fatal编程技术网

Php 需要帮助解析xml吗

Php 需要帮助解析xml吗,php,mysql,xml,Php,Mysql,Xml,这是我需要解析的xml,我需要元素标记中的名称和值,以便使用循环放入数组中 <ProductCatalog> <product> <AtrrList> <element Name="Storage Capacity" Value="8 GB"/> <element Name="Interface" Value="USB 2.0"/> </AtrrList> </produ

这是我需要解析的xml,我需要元素标记中的名称和值,以便使用循环放入数组中

<ProductCatalog>
  <product>
    <AtrrList>
      <element Name="Storage Capacity" Value="8 GB"/>
      <element Name="Interface" Value="USB 2.0"/>
    </AtrrList>
  </product>  
</ProductCatalog>
foreach($xxml->AttrList->element as$rating){
回声“;
回声“;
$name=$rating['name'];
echo$name;
回声“;
回声“;
$value=$rating['value'];
echo美元价值;
回声“;
回声“;
}
但我无法将其放入数组中,以便将其保存到mysql数据库中

我非常感谢您的帮助。

您可以用它来解析数据

试试这个:

foreach ($xxml->AttrList->element as $rating) {
    echo "<tr>";
    echo "<td>";
    $name = $rating['Name'];
    echo $name;
    echo "</td>";
    echo "<td>";
    $value = $rating['Value'];
    echo $value;
    echo "</td>";
    echo "</tr>";
}
$xml=$node->getAttribute('Name'),
'value'=>$node->getAttribute('value');
//可以直接输出属性
回声“
. $节点->获取属性('Name')
. ''
. $节点->获取属性('Value')
. '';
}

现在,结果将存储在$rating中,您可以使用xml_parse_into_struct()

此函数用于将所有xml元素转换为多维数组

我使用它时没有问题


查看以下位置的更多信息:

您还可以使用SimpleXML获取值:

$xml = <<<EOD
<ProductCatalog>
    <product>
        <AtrrList>
            <element Name="Storage Capacity" Value="8 GB"/>
            <element Name="Interface" Value="USB 2.0"/>
        </AtrrList>
    </product>  
</ProductCatalog>
EOD;

$rating = array();
$doc = new DOMDocument();
$doc->loadXML( $xml );
foreach( $doc->getElementsByTagName( 'element' ) as $node ) {
    $rating[] = array(
        'name'  => $node->getAttribute( 'Name' ),
        'value' => $node->getAttribute( 'Value' ) );

    // You can output the attributes directly
    echo '<tr><td>'
        . $node->getAttribute( 'Name' )
        . '</td><td>'
        . $node->getAttribute( 'Value' )
        . '</td></tr>';
}

结果显然已经是一个数组(
$rating
),所以如果您愿意,您可以将其保存到数据库中。准确解释您想要在数组中放置的内容Here示例使用php中的simplexml(文件和字符串):感谢oldskool,就像我一直是盲人一样。我在$rating中有我需要的所有信息,但我在过去的日子里工作得太多了,所以我没有正确地思考……再次感谢您。$xxml是我的变量,其中包含xml。
<?php

$xmlstr = <<<OOT
    <ProductCatalog>
    <product>
    <AtrrList>
    <element Name="Storage Capacity" Value="8 GB"/>
    <element Name="Interface" Value="USB 2.0"/>
    </AtrrList>
    </product>  
    </ProductCatalog>
OOT;

$movies = new SimpleXMLElement($xmlstr);

foreach($movies->product->AtrrList->element as $attr)
{
    echo $attr['Name'].' '.$attr['Value'];
    echo '<p>---</p>';
}
Storage Capacity 8 GB
---

Interface USB 2.0
---