【问题标题】:DOMXPath - queryDOMXPath - 查询
【发布时间】:2011-05-16 13:45:17
【问题描述】:

XML 文件:

   <Domain Domaindetails="This tree display the domain we work">Root element
<Insurance>
    <InsuranceQ>
        <Devs>4</Devs>
        <QA>1</QA>
        <Total>5</Total>
    </InsuranceQ>
    <?billResource bill()?>
    <QuoteX/>
    <ProgressiveLeads>
       <Devs>3</Devs>
       <Total>6</Total>
       <QA>3</QA>
    </ProgressiveLeads>
</Insurance>
<BI>
    <MoboM/>
    <CloudFW>
        <Devs>4</Devs>
        <QA>4</QA>
        <Total>8</Total>
    </CloudFW>
    <?billResource bill()?>
</BI>
<Ecommerce>
    <USEcom/>
    <LXEcom/>
</Ecommerce>
<extrainfo>Co > S&S </extrainfo>
</Domain>

遍历Insurance域下的项目于是写了如下代码

$dom = new DOMDocument('1.0');
$dom->load('project.xml');
$xpath = new DOMXPath($dom);

$nodeList=$xpath->query('//Domain/Insurance');

foreach($nodeList as $node)
{

    echo $node->nodeValue;  
    echo '<br/>';
}

它显示空结果。我的 XML 有问题吗?上面的代码导致 415[devs,qa,total nodes] 这不是预期的输出。

我想列出 保险Q 报价X Progressivelead 作为输出。

谁能告诉我我做错了什么...

谢谢, 普里蒂

【问题讨论】:

    标签: xpath domxpath


    【解决方案1】:

    首先,格式化代码 (XML) 有助于更快地理解问题。 行。回到您的问题,您可以尝试//Domain/Insurance/child::* 获取节点&lt;Insurance&gt; 的所有子节点。

    您的 XPath 未返回预期结果,因为您没有选择节点 &lt;Insurance&gt; 的子节点,您只是选择了 &lt;Insurance&gt; 节点。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-12
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      相关资源
      最近更新 更多