使用PHP 5.6修补漏洞XML 2.0 NIST

时间:2016-05-31 12:09:23

标签: php xml parsing

我正在尝试解析我附加的下一个xml。问题是我无法使用PHP 5.6解析下一行。我想提取属性。

<vuln:vulnerable-configuration id="http://www.nist.gov/">
  <cpe-lang:logical-test operator="OR" negate="false">
    <cpe-lang:fact-ref name="cpe:/o:microsoft:windows_8:-"/>
    <cpe-lang:fact-ref name="cpe:/o:microsoft:windows_8.1:-"/>
    <cpe-lang:fact-ref name="cpe:/o:microsoft:windows_server_2012:-:gold"/>
    <cpe-lang:fact-ref name="cpe:/o:microsoft:windows_rt:-:gold"/>
    <cpe-lang:fact-ref name="cpe:/o:microsoft:windows_rt_8.1:-"/>
  </cpe-lang:logical-test>
</vuln:vulnerable-configuration>

我使用了下一个代码,但我无法捕获de cpe-lang字段。此外,我已经尝试使用命名空间,但我无法获得vuln命名空间内的东西的孩子。

[$source = file_get_contents('C:/xampp/htdocs/prueba/products1.xml');
$xml    = new SimpleXMLElement($source);
$entries = $xml->entry;
foreach ($entries as $entry) {
        $namespace = $entry->getNameSpaces(true);
        $tmp = $entry->children($namespace\['cpe-lang'\],false);
        print_r($tmp)
        $aux={'fact-ref'};
        $config\['fact-ref'\]= (string)$entry->children('vuln', TRUE)->config->children($aux, TRUE)->logical_test->{'fact-ref'};
        print_r($config);
}][1]

如果我打印变量$ tmp,它表示该数组为空。 当我打印$ config时,它说:

Warning: main(): Node no longer exists in C:\xampp\htdocs\prueba\probando.php on line 56
Notice: Trying to get property of non-object in C:\xampp\htdocs\prueba\probando.php on line 56
Array ( [fact-ref] => )

由于

0 个答案:

没有答案