我是新手使用XML文件。我一直在尝试使用以下格式加载XML文档作为对象或数组: 完成此修改
<?xml version="1.0"?>
<xdm:Device xmlns:xdm="http://www.example.com/schemas/imaging/con/xdm/1.1/"
xmlns:dd="http://www.example.com/schemas/imaging/con/dictionaries/1.0/"
xmlns:bsi="http://www.example.com/schemas/imaging/con/bsi/2003/08/21"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:count="http://www.example.com/schemas/imaging/con/counter/2006/01/13"
xmlns:media="http://www.example.com/schemas/imaging/con/media/2006/01/13/"
xmlns:xsi="http://www.example.org/2001/XMLSchema-instance"
xmlns:tt="http://www.example.com/schemas/imaging/con/capabilities/1.1/"
xmlns:pwg="http://www.example.com/schemas/imaging/con/pwg/sm/1.0/">
<xdm:Information>
<xdm:Component id="system" componentType="system">
<dd:MakeAndModel>Samsung LaserJet ML220</dd:MakeAndModel>
<dd:Description>Blackand while printer</dd:Description>
<dd:ProductNumber>XB3zzz</dd:ProductNumber>
<dd:Manufacturer>
<dd:Name>Samsung</dd:Name>
</dd:Manufacturer>
</xdm:Component>
</xdm:Information>
</xdm:Device>
我想从每个入口获取MakeAndModel
,Description
,Manufacturer
等等。
我正在尝试使用以下代码加载代码,但我已经尝试了很多东西:
$xmlString = file_get_contents('test.xml');
$xml = simplexml_load_string($xmlString);
var_dump($xml);
我尝试过其他更简单的XML文档,但它运行正常。但是使用我的文档它不起作用,它会加载一个空对象。 该文件没有标题。我在其中一个例子中读到php.net以下内容:
//文件test.xml包含一个带有根元素的XML文档// 至少有一个元素/ [root] / title。
如何实现将此XML加载到数组或对象?
编辑2:
当我使用示例中的简单XML文件时,var_dump输出以下内容:
[root@windows8 csvmail]# php ppp.php
object(SimpleXMLElement)#1 (1) {
["movie"]=>
object(SimpleXMLElement)#2 (5) {
["title"]=>
string(22) "PHP: Behind the Parser"
如果获得以下内容,请输入真实文件:
[root@windows8 csvmail]# php ppp.php
object(SimpleXMLElement)#1 (0) {
}
[root@windows8 csvmail]#
答案 0 :(得分:2)
其中包含// Combine some macros together to create a single macro
// to launch a class containing a run method
#define RUN_OVR_APP(AppClass) \
MAIN_DECL { \
if (!ovr_Initialize()) { \
SAY_ERR("Failed to initialize the Oculus SDK"); \
return -1; \
} \
int result = -1; \
try { \
result = AppClass().run(); \
} catch (std::exception & error) { \
SAY_ERR(error.what()); \
} catch (std::string & error) { \
SAY_ERR(error.c_str()); \
} \
ovr_Shutdown(); \
return result; \
}
的节点位于“XML命名空间”中。它们用于将多种类型的数据混合到一个文件中,即使标记名称会发生冲突。
在文件的顶部,:
属性将前缀(可以通过生成文件的任何内容更改)与URL(作为特定类型数据的永久标识符)相关联。
要使用SimpleXML访问它们,可以使用the ->children()
method“选择”命名空间。您可以依赖不更改的前缀,或者可以将永久标识符存储在变量或常量中,并使用它,如下所示:
xmlns:...
有关如何循环遍历多个元素以及其他基本用法,请参阅the examples in the PHP manual。