我是一个完整的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>
我想在列表中显示部门。例如,我想要打印页面:
航空技术
机械 工程技术
有人可以告诉我一个简单的方法吗?对不起,我确信这非常简单,但我不知道我在做什么,并且在时间紧迫中。
感谢您的帮助
扎克
答案 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的文档,属性(...)将为您提供元素的所有属性。