【问题标题】:Parsing the output of Xpath query解析 Xpath 查询的输出
【发布时间】:2014-04-23 15:00:02
【问题描述】:

我有我的 xpath 查询的输出,比如使用 phhp 代码 -

<?php

$variable=$_POST['module']; 
$xmldoc = new DOMDocument();
        $xmldoc->load('info.xml');

        $xpathvar = new Domxpath($xmldoc);

        $queryResult = $xpathvar->query("testcase[substring-after(
        substring-after(script, '/'),
        '/'
    ) = '$variable' or
    substring-before(
        substring-after(
            substring-after(script, '/'),
            '/'
        ),
        '/'
    ) = '$variable']"); 

foreach($queryResult as $var)
        {
                echo $var->textContent;
                echo "\n";

        }

?>

输出 -

Backup_Restore_04_Restore_mode_OFF_Restore 3630976 SDN_CONTROLLER scripts/testSuite/sdnSTC/Flare/Backup_Restore/Sprint16_tests/Backup_Restore_RestoreModeOFFRestore.tcl This test case is to verify Message on Restore mode OFF TCL STC OK 89765 NULL ALL SDN SDN_CONTROLLER target:system:family:stc-auto-workstation-B Backup_restore_05_restore_mode_on_No_Restore_file 3631050 SDN_CONTROLLER scripts/testSuite/sdnSTC/Flare/Backup_Restore/Sprint16_tests/Backup_Restore_RestoreModeOnNORestoreFile.tcl To verify Restore mode ON and there is no backupfile available for Restore and restart flare in normal mode TCL STC OK 89766 NULL ALL SDN SDN_CONTROLLER target:system:family:stc-auto-workstation-B 

我想要的是从此输出中获取所有以 .tcl 结尾的字符串。

如何做到这一点。 请帮助..自上周以来我一直卡在这里:(

【问题讨论】:

标签: php xml xpath nsxmlparser


【解决方案1】:

要在数组中输出你可以做的-

foreach($queryResult as $var) { $array[] = basename($var->getElementsByTagName('script')->item(0)->textContent); }

【讨论】:

    【解决方案2】:

    试试这个方法

    foreach($queryResult as $var)
    {
      echo $var->getElementsByTagName('script')->item(0)->textContent;
      echo "\n";
    }
    

    请更改

    $queryResult = $xpathvar->query("testcase
    

    $queryResult = $xpathvar->query("//testcase
    

    【讨论】:

    • 不,我试过这个,它给了我错误:- Notice: Undefined property: DOMElement::$script in C:\wamp\www\test.php on line 23
    • 请检查我的编辑,对不起,我犯了假设 SimpleXML 的错误
    • 你能指导我如何获取以“.tcl”结尾的字符串而不是完整的脚本标签吗?
    • echo basename($var-&gt;getElementsByTagName('script')-&gt;item(0)-&gt;textContent);
    • 顺便说一句,你要我改变$queryResult = $xpathvar-&gt;query("//testcase
    猜你喜欢
    • 2014-04-19
    • 2011-04-18
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多