我有一个XML文件,其中包含数据,我想读取XML文件获取值并显示值,我正在尝试显示RECIPIENT_NUM和TEMPLATE,但现在我只能显示TEMPLATE但我可以'能够显示RECIPIENT_NUM.below是我的代码可以任何人指导我显示RECIPIENT_NUM,谢谢
XML
<?xml version="1.0" encoding="UTF-8"?>
<DOCUMENT>
<VERSION>2.0</VERSION>
<INVOICE_NUM>33</INVOICE_NUM>
<PIN>14567894</PIN>
<MESSAGE_TYPE>INSTANT_SEND</MESSAGE_TYPE>
<COUNTRY_CODE>xxxxxxx</COUNTRY_CODE>
<TEMPLATE>Dear Mrs Braem, this is a message from xxxxxxx. Kindly call us regarding your cleaning appoitnment tomorrow at 9.30. Thanks and Regards</TEMPLATE>
<DATABASEINFO>
<DATABASE_NAME>xxxxxx</DATABASE_NAME>
<CLINIC_ID>1</CLINIC_ID>
</DATABASEINFO>
<MESSAGES>
<MESSAGE>
<SEND_DATE>2013-12-15</SEND_DATE>
<ENTITY_ID>0</ENTITY_ID>
<RECIPIENT_NUM>xxxxxxx</RECIPIENT_NUM>
<MESSAGE_PARAMS />
</MESSAGE>
</MESSAGES>
<CSUM>ffd6c84a1a89a0f2ebc8b1dc8ea1f4fb</CSUM>
</DOCUMENT>
PHP
<html>
<body>
<?php
$xml=simplexml_load_file("/data/data/www/Message.xml");
print_r($xml);
echo $xml->TEMPLATE . "<br>";
echo $xml->RECIPIENT_NUM."<br>";
?>
</body>
</html>
答案 0 :(得分:5)
您必须查看XML的结构,
echo $xml->MESSAGES->MESSAGE->RECIPIENT_NUM."<br>";
答案 1 :(得分:0)
DOM更复杂,但可以做任何事情,尝试访问此DOM vs. SimpleXML
试试这个:
$xml = new DOMDocument();
$xml->load('/data/data/www/Message.xml');
$data = array (
'template' => $xml->getElementsByTagName('TEMPLATE')->item(0)->nodeValue,
'recipient_num' => $xml->getElementsByTagName('RECIPIENT_NUM')->item(0)->nodeValue
);
var_dump($data);
答案 2 :(得分:0)
这对我有用
$xml = simplexml_load_file("/data/data/www/Message.xml");
foreach($xml->children() as $key => $children) {
print((string)$children->TEMPLATE); echo "<br>";
print((string)$children->RECIPIENT_NUM); echo "<br>";
// Remaining codes here.
}
simplexml_load_file()返回xml节点作为对象,可以使用children()读取该对象中的每个元素,并可以使用上述代码将其检索为字符串值。
答案 3 :(得分:0)
当您使用 php simplexml_load_file
函数将 xml 文件加载到变量时。名副其实的变成了对象。
<?php
$xml=simplexml_load_file("/data/data/www/Message.xml");
?>
因此,在您的情况下,$xml
变量成为一个多级对象,其中 xml 文件的每个元素都是该对象的关键。如:TEMPLATE、PIN、COUNTRY_CODE、MESSAGES 等
要访问元素的数据,需要像下面这样调用。
echo $xml->TEMPLATE . "<br>";
完成此代码后,您将获得 TEMPLATE 元素下的值。
但是,由于 $xml
是一个多级对象,要访问 MESSAGES 下的元素,MESSAGE 下的元素,如 RECIPIENT_NUM >,你必须像下面这样编码。
echo $xml->MESSAGES->MESSAGE->RECIPIENT_NUM."<br>";
在这里,
MESSAGES
是 $xml
对象的键。
MESSAGE
是 MESSAGES
的键。
RECIPIENT_NUM
是 MESSAGE
的键。
最后得到key元素的值RECIPIENT_NUM
= xxxxx
您也可以使用 php foreach
循环访问该值。