Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中按ID输出XML_Php_Xml_Echo - Fatal编程技术网

在php中按ID输出XML

在php中按ID输出XML,php,xml,echo,Php,Xml,Echo,我是一个完全的XML新手。我一直在尝试获取一个XML文档并显示其中的一些部分,但我没有幸显示出我想要的内容。下面是我的XML文件的简单版本: <SOT> <DEPARTMENT name="Aviation Technology" id="AT"> <EMPLOYEE type="Faculty"> <LOGIN>bdbowen</LOGIN> <PASSWO

我是一个完全的XML新手。我一直在尝试获取一个XML文档并显示其中的一些部分,但我没有幸显示出我想要的内容。下面是我的XML文件的简单版本:

<SOT>
    <DEPARTMENT name="Aviation Technology" id="AT">
        <EMPLOYEE type="Faculty">
            <LOGIN>bdbowen</LOGIN>
            <PASSWORD>bdbowen</PASSWORD>
            <NAME>John J. Doe</NAME>
            <IMAGE>images/faculty/bdbown.jpg</IMAGE>
            <OFFICE>Knoy</OFFICE>
            <PHONE>765.494.2884</PHONE>
            <EMAIL>dsgriggs@purdue.edu</EMAIL>
        </EMPLOYEE>
    </DEPARTMENT>
    <DEPARTMENT name="Mechanical Engineering Technology" id="MET">
        <EMPLOYEE type="Faculty">
            <LOGIN>bdbowen</LOGIN>
            <PASSWORD>bdbowen</PASSWORD>
            <NAME>John J. Doe</NAME>
            <IMAGE>images/faculty/bdbown.jpg</IMAGE>
            <OFFICE>Knoy</OFFICE>
            <PHONE>765.494.2884</PHONE>
            <EMAIL>dsgriggs@purdue.edu</EMAIL>
        </EMPLOYEE>
    </DEPARTMENT>
</SOT>

博文
博文
约翰·J·多伊
图片/教员/bdbown.jpg
诺埃
765.494.2884
dsgriggs@purdue.edu
博文
博文
约翰·J·多伊
图片/教员/bdbown.jpg
诺埃
765.494.2884
dsgriggs@purdue.edu
我只想在列表中显示部门。例如,我希望页面打印:

航空技术
机械 工程技术

有人能告诉我一个简单的方法吗?对不起,我相信这是非常简单的,但我不知道我在做什么,我在一个时间紧迫

谢谢你的帮助


Zach

首先,您可以始终使用XSLT显示XML文件中的任何内容,而无需使用PHP。(只是想让你更迷惑一点;)

使用PHP: 您要做的是解析XML文件并使用所需的标记,或者更好地使用一个库来为您进行解析,并从XML文件中返回一个对象,以便您轻松使用

SimpleXML是您的朋友

 $string = <<<XML
<SOT>
    <DEPARTMENT name="Aviation Technology" id="AT">
        <EMPLOYEE type="Faculty">
            <LOGIN>bdbowen</LOGIN>
            <PASSWORD>bdbowen</PASSWORD>
            <NAME>John J. Doe</NAME>
            <IMAGE>images/faculty/bdbown.jpg</IMAGE>
            <OFFICE>Knoy</OFFICE>
            <PHONE>765.494.2884</PHONE>
            <EMAIL>dsgriggs@purdue.edu</EMAIL>
        </EMPLOYEE>
    </DEPARTMENT>
    <DEPARTMENT name="Mechanical Engineering Technology" id="MET">
        <EMPLOYEE type="Faculty">
            <LOGIN>bdbowen</LOGIN>
            <PASSWORD>bdbowen</PASSWORD>
            <NAME>John J. Doe</NAME>
            <IMAGE>images/faculty/bdbown.jpg</IMAGE>
            <OFFICE>Knoy</OFFICE>
            <PHONE>765.494.2884</PHONE>
            <EMAIL>dsgriggs@purdue.edu</EMAIL>
        </EMPLOYEE>
    </DEPARTMENT>
</SOT>
XML;


$xml = simplexml_load_string($string);
print_r($xml); 

$string=谢谢您提供的信息。但是,我仍然不理解如何查询xml文档。使用MySQL,我只需查询数据库,存储变量,然后就可以使用它们,我完全理解这一点。我不明白如何在XML中做同样的事情。我浏览了简单的XML,没有找到任何真正对我有帮助的东西。你可以使用xpath进行查询,但在你的问题中,你说你只需要这些部门。在这种情况下,$xml->SOT->DEPARTMENT应该为您提供一个可遍历的元素,您可以循环使用该元素,然后使用attributes()方法在以下行中显示您需要的任何属性:$deps=$xml->SOT->DEPARTMENT;foreach($deps as$dep){$attrs=$dep->attributes();echo$attrs['name'];}