2012-03-15 102 views
-1

我使用许多不同类型的xml文件。我将这些内容加载到我的mysql数据库中。问题是我需要定义我想要每次选择的标签。动态xml使用php处理

是否有一个PHP DOM对象函数,可以遍历所有标签并将它们提供给我。

这是我的示例XML

<products> 
    <product> 
     <name>Name of product</name> 
     <categories> 
      <category>Apparel</category> 
      <category>Trousers</category> 
      <category>Blue</category> 
     </categories> 
     <description>Blue trousers</description> 
     <price>599.00</price> <regularPrice>599.00</regularPrice> 
    </product> 
</products> 

输出应不值,但XML标签的acctual名,在这种情况下,它应该是 产品,产品名称,类别,类别,描述,价格

获取这些值我可以通过连接表动态指向它们,始终保存在正确的表格和正确的字段中。

+0

http://www.php.net/manual/en/simplexml.examples-basic.php – MrCode 2012-03-15 13:02:23

+0

但是,这并不覆盖我想要做的事情?我一直在一遍又一遍地阅读...也许是一个新手正确的方向,而不是只是downvoting ..! – 8bitcat 2012-03-15 13:18:55

回答

5

* 试试这个代码预期它会工作*

$xmlD = ' 
<products> 
    <product> 
     <name>Name of product</name> 
     <categories> 
      <category>Apparel</category> 
      <category>Trousers</category> 
      <category>Blue</category> 
     </categories> 
     <description>Blue trousers</description> 
     <price>599.00</price> <regularPrice>599.00</regularPrice> 
    </product> 
</products> 
'; 
$xml = simplexml_load_string($xmlD); 

echo $xml->getName() . "<br />"; 

foreach($xml->children() as $child) 
    { 
    echo $child->getName(). "<br />"; 
    foreach($child->children() as $innerChild): 
     echo $innerChild->getName(). "<br />"; 
    endforeach; 
} 
+0

谢谢!这就是我喜欢的功能!非常感谢! – 8bitcat 2012-03-15 13:29:02

+0

它打印每个孩子我怎么能限制它只能通过一个产品? – 8bitcat 2012-03-15 14:22:36

+1

让我解决你的问题 – 2012-03-15 16:49:44