使用XML标记属性作为PHP变量,并在HTTP请求中使用它

时间:2011-05-17 22:27:35

标签: php xml http request

有没有办法将XML属性保存为PHP变量并自动将其放在另一个http请求中?或者有更好的方法吗?

基本上,我向服务器发送一个http请求,我得到的代码看起来像这样:

<tag one="info" two="string">

我需要在属性2中保存字符串并将其插入一个类似于此的http请求中:

http://theserver.com/request?method=...&id=123456

'123456'ID必须是属性'two'中的字符串。

任何帮助将不胜感激!

谢谢, 简

3 个答案:

答案 0 :(得分:3)

如果您100%完全绝对完全 确保内容始终具有该确切格式,则可以像其他答案所建议的那样使用正则表达式。< / p>

否则,DOM不是很难管理......

$dom = new DOMDocument;
$dom->loadXML($yourcontent);
$el = $dom->getElementsByTagName('A')->item(0); // presuming your tag is the only element in the document
if ($el) {
    $id = $el->getAttribute('id');
}
$url = 'http://theserver.com/request?method=...&id=' . $id;

如果你有一个你将收到的XML的真实例子,请发布它,我会根据它调整这个答案。

答案 1 :(得分:1)

如果你可以......用JSON发送它。如果你不能,并且唯一返回的是wee片段,那么我将使用正则表达式来提取值。

/.*two="([^"]+)".*/之类的东西应匹配所有内容,请将匹配替换为'$ 1'

否则使用simplexml。

答案 2 :(得分:1)

您可以使用:

<?php

$string = '<tag one="info" two="123456">';
if (preg_match('/<tag one="[^"]*" two=\"([^"]*)\">/',$string,$match)) {
    $url = 'http://theserver.com/request?method=...&id=' . $match[1];
    echo $url;
}

?>