0

我有一个 XML 文件,我希望它发送 php 页面以将其写入 mysql 数据库。

例如,我有一个名为的类data,它的属性很少。然后将这些对象值作为 xml 文件保存在本地缓存中,如下所示:

<data>
   <value1></value1>
   <value2></value2>
   ..........
</data>

所以我想将这些数据发送到 mysql 数据库。我的服务器端使用 php,我是 php 新手。那么发送这些数据的最佳方式是什么。

  1. 通过访问数据对象(c#)将这些值作为参数发送

字符串数据 = "&value1=" + d.value1+"&value2="+ d.value2 ........;

2. 将xml文件直接发送到php页面,在php文件中读取xml文件并获取所需数据

发送这些数据的最佳方式是什么?(性能方面)

4

1 回答 1

1

答案很可能是“视情况而定”。

  1. 您的 XML 结构有多复杂,在服务器端 (PHP) 解析它有多容易?如果 XML 本身比较简单,并且参数的数量不太可能大幅增加,您可以考虑将它们作为 URL 的一部分发送。但是,如果 XML 将发生变化并变得更加复杂,那么您最终可能会不断发明使用这种方法将 XML 转换为 URL 参数的自行车。

  2. 将 XML 直接发送到服务器端可能更容易,因为您不需要将 XML 转换为 URL 参数。此外,您不需要关心您的 XML 有多大,而您需要使用 URL 查询参数 - URL 不应超过2083 个符号

此外,如果您使用 URL 参数方法,请注意字符串连接 - 您需要转义数据值,例如使用Uri.EscapeDataString方法。

性能方面,需要考虑三个方面:

  1. 如果没有太多的 URI 转义并且参数的值相当小(即主要是数字/ASCII 字符),则由于使用 HTTP GET 而不是 HTTP POST 和要传输的数据量较少,参数可能会传输得更快。然而,传输收益将被将 XML 转换为参数的成本所抵消,尽管对于小型 XML 来说可以忽略不计。

  2. 如果 XML 结构复杂并且数据中的值是任意长度的,那么它到 URL 参数的转换可能证明是低效的,在某些情况下甚至是不可能的。如果您最终使用 HTTP POST 而不是 HTTP GET,那么转换为参数是否有意义是非常值得怀疑的。

  3. 在服务器端解析 XML 可能比解析 URL 参数慢。然而,这是有问题的,需要适当的测量。

最后,可能建议您考虑一下——为什么在开发的这个阶段您对性能的这种低级方面感兴趣?您是否有一些性能问题并发现瓶颈在于那个小细节?请在此处查看 Eric Lippert 关于性能的出色文章。您最好继续使用最直接的解决方案(即最容易编码和维护)并稍后测量性能问题。

于 2012-10-27T04:47:52.430 回答