在PHP中通过ID输出XML

时间:2011-04-27 02:00:51

标签: php xml echo

我是一个完整的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>

我想在列表中显示部门。例如,我想要打印页面:

  

航空技术
机械   工程技术

有人可以告诉我一个简单的方法吗?对不起,我确信这非常简单,但我不知道我在做什么,并且在时间紧迫中。

感谢您的帮助

扎克

1 个答案:

答案 0 :(得分:1)

首先,您始终可以使用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); 

此时您已拥有该对象所需的一切,您可以根据需要进行显示。 每个元素都是SimpleXMLElement类型,它们都实现了Traversable(这意味着你可以在foreach中使用它们) 此外,如果您阅读SimpleXMLElement的文档,属性(...)将为您提供元素的所有属性。