1

以下の結果を達成する方法について助けていただければ幸いです-PHPスニペットまたは任意のメソッドを使用してid属性をタグに追加できます。<image>

<?xml version="1.0" encoding="utf-8"?>
<root>
    <property>
        <images>
            <image id="1">
                <url>http://www.mywebsite/image?id=1&.jpg</url>
            </image>
            <image id="2">
                <url>http://www.mywebsite/image?id=2&.jpg</url>
            </image>
        </images>
    </property>
</root> 
4

2 に答える 2

1

上記と同じxmlを作成したいと思います

$array = array(
        "http://www.mywebsite/image?id=1&.jpg",
        "http://www.mywebsite/image?id=2&.jpg"
);

header('Content-Type:text/plain');
$xml = new SimpleXMLElement("<root></root>");
$property = $xml->addChild('property');
$images = $property->addChild('images');

foreach($array as $link) {
    parse_str(parse_url($link, PHP_URL_QUERY), $query);

    $image = $images->addChild('image');
    $image->addAttribute("id", $query['id']);
    $url = $image->addChild("url", urlencode($link));
}

echo $xml->asXML();
于 2013-05-11T21:58:17.013 に答える
0

文字列を読み込んでいる場合は、ループして各に属性を<images>追加できます。id<image>

注: &URL の が原因で XML がエラーをスローしているため、実際の例のためにそれらを に置き換えました&amp;

header('Content-Type:text/plain');
$xmlstring = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<root>
    <property>
        <images>
            <image>
                <url>http://www.mywebsite/image?id=1&amp;.jpg</url>
            </image>
            <image>
                <url>http://www.mywebsite/image?id=2&amp;.jpg</url>
            </image>
        </images>
    </property>
</root>
XML;

$xml = simplexml_load_string($xmlstring);

foreach ($xml->property->images->image as $image)
{
    parse_str(parse_url($image->url, PHP_URL_QUERY), $querystring);
    $image->addAttribute("id", $querystring['id']);
}

echo $xml->asXML();

これと同じ方法は、文字列の代わりに XML ファイルを読み込むことでも実現できます。

$xml = simplexml_load_file('path/to/file.xml');
于 2013-05-11T23:47:08.823 に答える