DOMXPath - запрос - PullRequest
       13

DOMXPath - запрос

2 голосов
/ 16 мая 2011

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>

Обход проектов в разделе «Страхование». Поэтому написал следующий код

$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 узлов], что не является ожидаемым выводом.

Я хочу перечислить InsuranceQ QuoteX Progressivelead в качестве вывода.

Может кто-нибудь сообщить мне, чтоЯ делаю неправильно ...

Спасибо, Прити

1 Ответ

0 голосов
/ 16 мая 2011

Во-первых, отформатированный код (XML) поможет быстрее понять проблему. Хорошо. Возвращаясь к вашему вопросу, вы можете попробовать //Domain/Insurance/child::*, чтобы получить все дочерние элементы узла <Insurance>.

Ваш XPath не дал ожидаемых результатов, потому что вы не выбираете дочерние элементы узла <Insurance>, вы просто выбираете <Insurance> узел.

Надеюсь, это поможет

...