用php在表中显示xml代码

时间:2015-12-20 00:32:44

标签: php xml

我希望它显示类似

的内容

概念类型关系类型显示节点和子元素的XML文件中的代码

我可以将它显示在表格中的数组中,但我不知道如何以xml格式显示它,因此更容易阅读。

我的php文件是

    <?php
#error_reporting(0);
#header("Content-type: text/xml");

$get = ('Human.cogxml');
$cogxml = simplexml_load_file($get);
$data = $cogxml->support->conceptTypes->ctype;
$datas = $cogxml->support->relationTypes->rtype;
?>
<html>

    <head>
        <title>Hello World</title>
    </head>
    <body>
        <table border="2">
            <tr>
                <th>Concept Name</th>
                <th>Relation Type</th>
                <th>CoGui XML</th>
            </tr>

            <?php
            foreach ($data as $row) {
                ?>
                <tr>
                    <td>
            <?php echo $row['label']; ?>
                    </td>
                    <?php
                    foreach ($datas as $row2) {
                        ?>
                        <td>
                    <?php echo $row2['label'];  ?>
                        </td>
                        <td>
                            <?php
                            header('Content-type text/xml');
                            #dom->preserveWhiteSpace = false;
                            $file = file_get_contents('http://data.fcc.gov/api/license-view/basicSearch/getLicenses?searchValue=Verizon+Wireless');
                               $movies = new SimpleXMLElement($file);
                               echo '<pre>';
print_r($movies);
echo '<pre>';
                            # echo $dom->XML();
                             ?>
                        </td>
                    </tr>
                    <?php
            }
            }
            ?>
        </table>
    </body>

</html>

我的xml文件是

<cogxml>
    <namespace name="http://www.lirmm.fr/cogui#" prefix=""/>
    <support name="vocabulary">
        <conceptTypes>
            <ctype id="http://www.lirmm.fr/cogui#_ct_5f3287f9-fb7b-47c2-84b0-e25694b29841" label="Human" x="10" y="10">
                <translation descr="" label="Human" lang="en"/>
            </ctype>
            <ctype id="http://www.lirmm.fr/cogui#ct_ef8dc30a-fc37-48fa-80f3-4588e4d101d2" label="Adult" x="120" y="10">
                <translation descr="" label="Adult" lang="en"/>
            </ctype>
            <ctype id="http://www.lirmm.fr/cogui#ct_1b5b2797-a707-4758-a200-6e9bef2f13b9" label="Female" x="90" y="110">
                <translation descr="" label="Female" lang="en"/>
            </ctype>
            <ctype id="http://www.lirmm.fr/cogui#ct_be05db54-5043-488c-a08b-3bb643cf0f78" label="Child" x="130" y="60">
                <translation descr="" label="Child" lang="en"/>
            </ctype>
            <ctype id="http://www.lirmm.fr/cogui#ct_8a7f45ec-0204-4c73-921b-781d87327ba0" label="Girl" x="170" y="220">
                <translation descr="" label="Girl" lang="en"/>
            </ctype>
                <ctype id="http://www.lirmm.fr/cogui#ct_199f3367-213f-4139-8ad4-fe2f4e4874e7" label="Woman" x="235" y="130">
                <translation descr="" label="Woman" lang="en"/>
            </ctype>
            <order id1="http://www.lirmm.fr/cogui#ct_ef8dc30a-fc37-48fa-80f3-4588e4d101d2" id2="http://www.lirmm.fr/cogui#_ct_5f3287f9-fb7b-47c2-84b0-e25694b29841"/>
            <order id1="http://www.lirmm.fr/cogui#ct_1b5b2797-a707-4758-a200-6e9bef2f13b9" id2="http://www.lirmm.fr/cogui#_ct_5f3287f9-fb7b-47c2-84b0-e25694b29841"/>
            <order id1="http://www.lirmm.fr/cogui#ct_be05db54-5043-488c-a08b-3bb643cf0f78" id2="http://www.lirmm.fr/cogui#_ct_5f3287f9-fb7b-47c2-84b0-e25694b29841"/>
            <order id1="http://www.lirmm.fr/cogui#ct_8a7f45ec-0204-4c73-921b-781d87327ba0" id2="http://www.lirmm.fr/cogui#ct_1b5b2797-a707-4758-a200-6e9bef2f13b9"/>
            <order id1="http://www.lirmm.fr/cogui#ct_199f3367-213f-4139-8ad4-fe2f4e4874e7" id2="http://www.lirmm.fr/cogui#ct_1b5b2797-a707-4758-a200-6e9bef2f13b9"/>
            <order id1="http://www.lirmm.fr/cogui#ct_8a7f45ec-0204-4c73-921b-781d87327ba0" id2="http://www.lirmm.fr/cogui#ct_be05db54-5043-488c-a08b-3bb643cf0f78"/>
            <order id1="http://www.lirmm.fr/cogui#ct_199f3367-213f-4139-8ad4-fe2f4e4874e7" id2="http://www.lirmm.fr/cogui#ct_ef8dc30a-fc37-48fa-80f3-4588e4d101d2"/>
        </conceptTypes>
        <relationTypes>
            <rtype id="http://www.lirmm.fr/cogui#_rt_336363f1-0068-48d1-b1de-93ae264e4f49" idSignature="http://www.lirmm.fr/cogui#_ct_5f3287f9-fb7b-47c2-84b0-e25694b29841 http://www.lirmm.fr/cogui#_ct_5f3287f9-fb7b-47c2-84b0-e25694b29841" label="Link">
                <translation descr="" label="Link" lang="en"/>
            </rtype>
         </relationTypes>
        <nestingTypes>
            <ntype id="http://www.lirmm.fr/cogui#_nt_23d8104c-fbe5-4228-895f-074faa673d74" label="Nesting">
                <translation descr="" label="Nesting" lang="en"/>
            </ntype>
        </nestingTypes>
        <conformity/>
        <modules/>
    </support>
    <localeTypes name="undefined_vocabulary">
        <conceptTypes/>
        <relationTypes/>
        <nestingTypes/>
        <conformity/>
        <modules/>
    </localeTypes>
    <graph id="_g1" label="_g1" nature="fact" set="default_set"/>
</cogxml>

1 个答案:

答案 0 :(得分:3)

默认情况下,SimpleXMLElement()需要字符串,而不是URL或文件路径。具体而言,data_is_url参数设置为False。因此,如果从文件中读取,则显式传递True值:

$movies = new SimpleXMLElement($file, 0, true);

但如果从网址上阅读,则无需file_get_contents()

$movies = new SimpleXMLElement('http://data.fcc.gov/api/license-view/basicSearch/getLicenses?searchValue=Verizon+Wireless', NULL, True);

此外,print_f($movies)转储SimpleXMLElement对象的结构,这对用户来说可能不太直观。考虑使用asxml()saveXML()按原样输出XML内容:

echo $movies -> asXML();

OR

echo $movies -> saveXML();