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

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

WBOY
Libérer: 2016-06-06 20:49:22
original
1197 Les gens l'ont consulté

假设有这么一个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>
Copier après la connexion
Copier après la connexion

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

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

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

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

<code>(new DOMXpath)->query('/root/home/sea/uv[name=l1]');
</code>
Copier après la connexion
Copier après la connexion

回复内容:

假设有这么一个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>
Copier après la connexion
Copier après la connexion

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

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

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

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

<code>(new DOMXpath)->query('/root/home/sea/uv[name=l1]');
</code>
Copier après la connexion
Copier après la connexion
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal