有一个来自服务器的XML数据,通过浏览器返回的,我想把里面的所有数据导入到摸个mysql里面 或者创建一个mysql表。
XML中的数据内容特大了,又不能下载到服务器,只能浏览器上显示。网址也不是一个后尾.xml的(比如:http://xxx.xx/xx.do?xx=xx&xx=xx,我提交一些post后返回这个xml)。我要根据浏览器上返回这些数据创建一个数据表,如果第二次还要更新的话先删除原有的数据表后再创建一个原名的数据表。
创建mysql数据表后的操作我会的,不过我不懂xml。请大家帮忙给我写一个php文件。
如果php每次能读取这些XML数据后能获取我想要的内容也行(没必要创建mysql数据表)。要求就是输入摸个prodId的值 它能获取这个products里面prodContent等所有信息XML格式为:
<products>
  <product name="prodId" value="xxx" /> 
  <product name="prodContent" value="xx" /> 
  <product name="prodPrice" value="xx" /> 
  <product name="prodIsptype" value="xxx" /> 
  <product name="prodDelaytimes" value="xxx" /> 
  <product name="prodProvinceid" value="xxx" /> 
  <product name="prodType" value="xxx" /> 
  </products>
<products>
  <product name="prodId" value="xxx" /> 
  <product name="prodContent" value="xx" /> 
  <product name="prodPrice" value="xx" /> 
  <product name="prodIsptype" value="xxx" /> 
  <product name="prodDelaytimes" value="xxx" /> 
  <product name="prodProvinceid" value="xxx" /> 
  <product name="prodType" value="xxx" /> 
  </products>

解决方案 »

  1.   

    <?php$doc = new DOMDocument(); //实例化DOMDocument对象$doc->load('xxx.xml');   //要加载的xml文件$products= $doc->getElementsByTagName("products"); 
    $product=$doc->getElementsByTagName("product");
    foreach($products as $note){echo $note->nodeValue;
    echo "<br/>";
    }
    ?
      

  2.   

    我提交一些post后返回这个xml
    ————————————————
    curl或者ajax都可以吧……这个返回的xml其实就是个接口啊
      

  3.   

    这就是一个接口返回的信息。就像网银充值后从网上银行返回的信息差不多。不过从这个返回的信息XML格式了。
      

  4.   

    这个代码是不是还要补写什么内容?获取的全是《<br/>》。页面什么都不显示了 只能空白换行
      

  5.   


    1#的程序只是是处理返回xml的,但是你还需要解决post内容的部分工作,所以我上面所说的curl或者ajax还是需要用到的流程是这样
    方案一:
    1.把你需要post的内容用curl发送到你的提交页面
    2.把curl获得的返回xml(可看作字符串)用#1的程序处理,
    其中$doc->load('xxx.xml'); 改为$doc->loadXML($re);//$re就是curl返回的变量方案二:
    1.在你原来的html页面使用ajax发送post到那个接口
    2.ajax返回的xml用js处理
    处理后看你的需求,要么直接应用,要么二次提交到你的php(就是一楼那个程序)
    同样要用$doc->loadXML($re);//这里$re就是二次提交的$_POST['XML']
    方案一是比较合理的,这样客户端无法截留那个xml
    方案二方便些,但xml的内容相当于暴露了(在二次提交前),不重要的情况,例如返回的xml内容要直接显示给发送post的人看,这时才应该使用看你上面提到“银行”,这里再次严重敬告:涉及重要信息不能使用方案二!!!
      

  6.   

    说最简单的吧
    假如啊  我有一个XML文件。下面的XML文件一部分:
    <products>
      <product name="prodId" value="xxx" />  
      <product name="prodContent" value="xx" />  
      <product name="prodPrice" value="xx" />  
      <product name="prodIsptype" value="xxx" />  
      <product name="prodDelaytimes" value="xxx" />  
      <product name="prodProvinceid" value="xxx" />  
      <product name="prodType" value="xxx" />  
      </products>
    <products>
      <product name="prodId" value="xxx" />  
      <product name="prodId" value="xx" />  
      <product name="prodPrice" value="xx" />  
      <product name="prodIsptype" value="xxx" />  
      <product name="prodDelaytimes" value="xxx" />  
      <product name="prodProvinceid" value="xxx" />  
      <product name="prodType" value="xxx" />  
      </products>我想获取所有的value值。获取后导入mysql数据库里。这就是我的目的了  
      

  7.   

    说实话我一点都不懂这个XML,ajax了。几天了搞不懂这个累死了 请大家告诉我最实用的方案