簡體   English   中英

幫助使用php進行XML解析

[英]help with xml parsing using php

我有以下示例xml:

<entity id="1">
    <name>computer</name>
    <type>category</type>
    <entities>
        <entity id="2">
            <name>mac</name>
            <type>category</type>
        </entity>
        <entity id="3">
            <name>linux</name>
            <type>category</type>
            <entities>
                <entity id="4">
                    <name>ubuntu</name>
                    <type>category</type>
                </entity>
                <entity id="5">
                    <name>redhat</name>
                    <type>category</type>
                    <entities>
                        <entity id="6">
                            <name>server</name>
                            <type>category</type>
                        </entity>
                        <entity id="7">
                            <name>desktop</name>
                            <type>category</type>
                        </entity>
                    </entities>
                </entity>
            </entities>
        </entity>
    </entities>
</entity>

如果我有一個ID,可以說5。是否可以檢索以下內容:

  • id = 5的實體名稱(redhat)
  • 所有子實體及其ID和名稱(6:服務器和7:桌面)
  • 所有父實體及其ID和名稱(1:計算機,2:mac和3:linux)

我在解析xml時是菜鳥。 這是僅通過xpath還是xquery / xpath完成的?

如果有人可以給我一些示例代碼以實現simplexml,我將不勝感激。

謝謝!

您可以使用SimpleXML

<?php
$simpleXml = simplexml_load_string($xml); // or load your file, whatever

if (($element = $simpleXml->xpath('//*[@id = 5]'))) {
    var_dump($element);
    echo 'Element and descendants: ', $element[0]->asXML(), PHP_EOL;
    echo 'Name of the entity: ', $element[0]->name, PHP_EOL;
}

SimpleXML提供了非常直觀的XML處理,但是它比完整的DOM類更受限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM