Maison  >  Article  >  développement back-end  >  请问使用DOMXpart如何快速定位某一个DOMElement呢?

请问使用DOMXpart如何快速定位某一个DOMElement呢?

WBOY
WBOYoriginal
2016-06-06 20:49:221156parcourir

假设有这么一个xml,这个可以不固定

<code><root>
    <home>
        <sea id="s1">
            <uv name="l1">test.1
            <op name="l1">test.2</op>
        </uv></sea>
        <sea id="s2">
            <uv name="l2">test.3</uv>
            <op name="l1">test.4
            <uv name="l1">test.5</uv>
        </op></sea>
    </home>
    <home>...</home>
</root>
</code>

我先通过DOMDocument获取到一个ID截点,如下:

<code>$dom = new DOMDocument;
$s1 = $dom->getElementByID('s1');
// 返回一个DOMElement对象..做一些列操作,略

$xpath = new \DOMXpath;
// 获取ID截点下uv的name属性为l1的截点
</code>

请问,我如何根据DOMElement对象,快速定位到这个截点,而不是从根目录一级一级往下获取,如:

<code>(new DOMXpath)->query('/root/home/sea/uv[name=l1]');
</code>

回复内容:

假设有这么一个xml,这个可以不固定

<code><root>
    <home>
        <sea id="s1">
            <uv name="l1">test.1
            <op name="l1">test.2</op>
        </uv></sea>
        <sea id="s2">
            <uv name="l2">test.3</uv>
            <op name="l1">test.4
            <uv name="l1">test.5</uv>
        </op></sea>
    </home>
    <home>...</home>
</root>
</code>

我先通过DOMDocument获取到一个ID截点,如下:

<code>$dom = new DOMDocument;
$s1 = $dom->getElementByID('s1');
// 返回一个DOMElement对象..做一些列操作,略

$xpath = new \DOMXpath;
// 获取ID截点下uv的name属性为l1的截点
</code>

请问,我如何根据DOMElement对象,快速定位到这个截点,而不是从根目录一级一级往下获取,如:

<code>(new DOMXpath)->query('/root/home/sea/uv[name=l1]');
</code>
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn