PHP:仅在变量包含来自XML

时间:2016-01-24 19:17:29

标签: php xml

我是PHP的新手。我想:

  1. 将XML文件中的数据写入变量;
  2. 将变量中的数据写入文件;
  3. 该文件为空。我认为这与XML文件解析期间的延迟有关。变量已创建,但它为空,这就是文件为空的原因。这有延迟或某种解决方法吗?

    代码:

    $xml = simplexml_load_file("someXMLFileWhichTakesTimeToLoad.xml") or die ("Error: Cannot create object");
    $myfile = fopen("eeFuelPrice.txt", "w") or die("Unable to open file!");
    print_r($xml);
    fwrite($myfile, $xml);
    print_r("successfully wrote file");
    

    提前致谢!

3 个答案:

答案 0 :(得分:1)

我假设您希望将XML用作XML,而不是字符串......

注意:$xml是一个阻塞函数:当它返回时,文件已解析。

您需要进行一些错误处理:您正在打印fwrite(),因此我假设打印出您期望的数据。 fwrite()返回写入的字节数 - 它返回什么?如果它为零,(它可能会是),那么这就是你的问题。

您可以使用javadoc之类的东西将XML对象打印到文件中。 Dim HWID As String = String.Empty Dim mcl As New ManagementClass("win32_processor") Dim MOBC As ManagementObjectCollection = mcl.GetInstances() For Each mob As ManagementObject In MOBC If HWID = "" Then HWID = mob.Properties("processorID").Value.ToString() Exit For End If Next Dim mboardstr As String = Nothing Dim mbs As ManagementObjectSearcher = New ManagementObjectSearcher("Select * From Win32_BaseBoard") For Each mo As ManagementObject In mbs.Get mboardstr = mboardstr + mo("SerialNumber").ToString Next MsgBox(mboardstr) 用于将字节(字符串)写入文件。

答案 1 :(得分:1)

您应该使用file_put_contents()$xml = "someXMLFileWhichTakesTimeToLoad.xml"; $myfile = "eeFuelPrice.txt"; $content = file_get_contents($xml); file_put_contents($myfile, $content); 函数。

Cell 1=
'1007_s_at' 780 'DDR1'
'1053_at'   5982    'RFC2'
'117_at'    3310    'HSPA6'
'121_at'    7849    'PAX8'
'1255_g_at' 2978    'GUCA1A'
'1294_at'   7318    'UBA7'
'1316_at'   7067    'THRA'

答案 2 :(得分:0)

您遇到的问题是simplexml_load_file返回一个对象(see docs)您无法使用fwrite将对象直接写入文件:

  

int fwrite(resource $ handle,string $ string [,int $ length])

如果你要做的就是获取一个XML文件的内容并将其添加到文本文件中,那么只需用file_get_contents来阅读内容;它返回一个字符串值而不是一个对象。