【问题标题】:Sending XML file through PHP remote url通过 PHP 远程 url 发送 XML 文件
【发布时间】:2012-07-26 10:42:30
【问题描述】:

情况如下。我必须将定义的 XML 发送到 url http:\\www.example.com:1234,其中包含一些我之前必须定义的变量。

XML 是这样的:

<Title1>
<Title2>Some Text</Title2>
<Title3>Variable 1</Title3>
<Title4>Some Text</Title4>
<Title5>
    <Title51>Variable 2</Title51>
</Title5>
</Title1>

但是,我想在 html/php 表单和 get 方法中定义这些变量(1、2),因此用户可以引入这两个变量,然后单击表单中的提交按钮将 XML 发送到先前网址。

另外,XML 应该有 "Content-Type","application/x-www-form-urlencoded" 标头。

这可能吗?我尝试将这些变量直接传递给 XML,我得到的最好方法是显示 XML 而不是解析 php 字符串。

另外,我尝试了一些脚本,例如 PHP 类中的 simplexml,但到目前为止没有运气。

【问题讨论】:

  • 您是否尝试使用从 php $_GET[] 获得的 的新值来修改现有的 xml 文件(或创建新文件)? ?
  • @Makesh - 如果可以通过自身传递这些值,我正在尝试修改现有的 xml 文件。否则,如果可以创建一个预先加载了这些值的全新 xml,我不会抱怨。

标签: php xml


【解决方案1】:

1) 用新值修改现有 XML。试试这个

sample.xml

<Title1>
   <Title2>Some Text</Title2>
   <Title3>Variable 1</Title3>
   <Title4>Some Text</Title4>
   <Title5>
      <Title51>Variable 2</Title51>
   </Title5>
</Title1>

PHP:

$xml = simplexml_load_file("sample.xml");
$xml->Title3 = $_GET['t3'];              // Updating <Title3></Title3> from GET method
$xml->Title5[0]->Title51 = $_GET['t5'];  // Updating <Title51></Title51> from GET method
$xml->asXML('sample.xml');               // saving the xml file

2)创建新的 XML 文件 (sample.xml):

PHP:

$xml = new SimpleXMLElement("<Title1></Title1>");
$xml->Title2='Some Text';
$xml->Title3 = $_GET['t3'];
$xml->Title4='Some Text';
$xml->Title5[0]->Title51 = $_GET['t5'];
$xml->asXML('sample.xml');               // saving the xml file

我已经向您展示了评论中提到的两种可能性。使用任何让你感到安慰的人:)

【讨论】: