php - 我的应用程序正在向服务器发送 XML 文件 : need some guidance on writing a PHP script to parse the XML file

标签 php iphone xml

因此,我的 iPhone 应用程序通过 POST 将 XML 文件中的购物车发送到 URL。这是执行此操作的代码行

NSString *pathToSerializedCart = [rootPath stringByAppendingPathComponent:@"serializedCart.plist"];
NSString *shoppingCartString;
NSData *serializedData;
if (![fileManager fileExistsAtPath:pathToSerializedCart])
   {
    NSLog(@"ERROR:\nCouldnt find serialized cart in documents folder.");
    return;
   }


    serializedData = [NSData dataWithContentsOfFile:pathToSerializedCart];
    shoppingCartString = [[NSString alloc] initWithData:serializedData
                                                        encoding:NSUTF8StringEncoding];
    NSLog(@"%@", shoppingCartString);
    [shoppingCartString release];


    //==========================================================================


NSData *returnData = [NSURLConnection sendSynchronousRequest:request 
                                           returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] 
                          initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"%@",returnString);
[returnString release];

现在我想做的就是在服务器上的文件 welcome.php 中放置一个脚本,以便将此 XML 文件的内容回显到浏览器。

我看过很多示例,但它们都讨论了 XML 文件与服务器上的 PHP 文件位于同一目录中的情况。我还没有找到实际从应用程序中调用的 PHP 代码示例。

有人可以指出我正确的方向吗?

谢谢

最佳答案

更新在看到完整的 objc 后,我认为有问题的 POST 值名称是 userfile 并且我已经更新了下面的代码。

在 PHP 中,上传文件的文件名位置将位于 $_FILES['userfile']['tmp_name'] 中。建议使用 var_dump($_FILES) 以便您了解 PHP 如何处理上传的文件。

函数 file_get_contents() 将读取该临时文件名并将其内容作为字符串返回,您可以将其加载到 DOMDocument 中,如下面的最后一段代码所示。

推荐阅读:PHP docs on the $_FILES superglobal array

您需要从 $_POST[] 超全局中检索 XML 数据,然后可以使用 simplexml_load_string() 对其进行解析。

// Sorry I'm unfamiliar with objC, so I can't glean the actual POST 
// value name from your code
// UPDATE misunderstood. the uploaded file is in $_FILES
// indexed by the POST key name.

// In development you can inspect your POST...
// To see the contents of your POST in PHP, do:
var_dump($_POST);
// Also check the contents of $_FILES
var_dump($_FILES);

// Your file is stored in the temp directory 
$xmlfile = $_FILES['userfile']['tmp_name'];

// Load it with SimpleXML
$xml = simplexml_load_file($xmlfile);

或者代替 SimpleXML,我通常更喜欢更灵活的 PHP DOMDocument图书馆:

$xmlfile = $_FILES['userfile']['tmp_name'];
$dom = new DOMDocument();
$dom->loadXML(file_get_contents($xmlfile));

// Now parse it as necessary using DOM manipulators
$tags = $dom->getElementsByTagName("sometag");
foreach ($tags as $sometag) {
   // whatever...
}

关于php - 我的应用程序正在向服务器发送 XML 文件 : need some guidance on writing a PHP script to parse the XML file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6602075/

相关文章:

xml - 您如何指定允许一系列元素以任何顺序排列的 XSD?

c# - 如何仅将大型 xml 文件的一部分反序列化为 C# 类?

PHP fatal error : Class 'imagecreatefromjpeg' not found

javascript - 单击链接,概述按钮,直到单击其他地方

iPhone:为我的应用程序的特定区域添加 tabbarcontroller

ios - ios中的SSIDDATA包含什么

php - 连接和两个可能的 where 子句

php - PHP 邮件中的动态文本框

iphone - 如何排序NSMutableArray元素?

php - 替换 SimpleXMLElement 的值