【问题标题】:How to get a particular value from a xml tag如何从 xml 标签中获取特定值
【发布时间】:2014-03-07 08:57:44
【问题描述】:

我必须解析一个 XML 文件并在我的 Web 应用程序中创建一个下拉列表。 现在,在解析 XML 之后,输出看起来像 -

脚本/testSuite/networkSecurity/802dot1x/802dot1xBasicFunctionality/802dot1xRadAccAVPClntStatIp.tcl 脚本/testSuite/networkSecurity/802dot1x/802dot1xConfiguration/802dot1xBasicUserMode.tcl

脚本是我的 XML 文件的标记之一。

现在从这个标签我只想要第二个位置(networkSecurity)最后并打印它们。 我怎样才能做到这一点?

【问题讨论】:

    标签: php xml xml-parsing


    【解决方案1】:

    试试这个:

    $parser = xml_parser_create();
    xml_parse_into_struct($parser, $xml, $values, $indexes);
    xml_parser_free($parser);
    

    其中 $xml 是您的 xml,$values 和 $indexes 将是返回的数组,其中包含找到的 xml 标签及其位置。

    【讨论】:

      【解决方案2】:

      您可以使用simplexml_load_file — 将 XML 文件解释为对象

      $xml = simplexml_load_file("file.xml");
      
      echo $xml->data;
      

      *更新

      通过斜线分隔符获取特定值:

      $xml = simplexml_load_file("file.xml");
      
      foreach($xml->testcase as $var){
          $var=explode('/',$var->script);
          echo $var[2] ."\n". end($var);
      }
      

      【讨论】:

      • Orlo :我已经在使用它了,在解析了我的大 XML 文件后,我得到了这个输出 .. 这个输出是一个 xml 标记的内容,看起来像 <script>scripts/testSuite/networkSecurity/802dot1x/802dot1xBasicFunctionality/802dot1xSuppFailSuppAuthentication.tcl</script> 我现在想要的就是获取这个脚本标签的第二个位置和最后一个。
      • 您的想法非常有效,但有一件事困扰着我。我正在使用逻辑-foreach ($testcase->script as $var) { $var=preg_replace('/<(.*?)>/','',$var); $var=explode('/',$var); echo $var[2] ."\n". end($var); },因为我有很多脚本标签,但即使在输出中使用 foreach 之后,我也只能得到最后一个脚本标签的值:(
      • 尝试运行 print_r($var),看看每个数组在 foreach 循环中的样子。
      • 哦,我遇到了问题,但不知道如何解决。目前我的 php 脚本看起来像
      • <?php $xml=simplexml_load_file('info.xml'); foreach ($xml->testcase as $testcase) { echo $testcase->script . "<br>"; } foreach ($testcase->script as $var) { $var=preg_replace('/<(.*?)>/','',$var); // remove html tag $var=explode('/',$var); echo $var[2] ."\n". end($var); print_r($var); } ?>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 2014-07-07
      • 2013-02-14
      • 1970-01-01
      相关资源
      最近更新 更多