1
누군가가 나를 미치게 만드는 데 도움이되기를 바랍니다.DOm 및 PHP를 사용하여 기존 XML 문서에 노드 추가
PHP를 사용하여 기존 XML 파일을 업데이트해야합니다. 노드 중 하나의 값이 무언가라면, 그 안에 텍스트가있는 새 하위 요소를 추가하고 싶습니다.
이<properties>
<property>
<address>
<street>Example Road</street>
<locality>Fitzrovia</locality>
<town>London</town>
<postcode>NW1</postcode>
</address>
</property>
<property>
<address>
<street>Default Street</street>
<locality>Sample</locality>
<town>London</town>
<postcode>EC1</postcode>
</address>
</property>
</properties>
내가 지금 가지고있는 PHP가 :
내가 뭘하려고 오전$dom = new DOMDocument();
$dom->load('http://example.com/example.xml');
$xpath = new DOMXPath($dom);
$postcode = $xpath->query('property/address/postcode');
foreach($postcode as $region)
{
$r = $region->nodeValue;
if (preg_match('/^nw(?=[0-9]*)/i', $r)) {
$region->nodeValue = 'North West London';
}
else if (preg_match('/^n(?=[0-9]*)/i', $r)) {
$region->nodeValue = 'North London';
}
else if (preg_match('/^e(?=[0-9]*)/i', $r)) {
$region->nodeValue = 'East London';
}
else if (preg_match('/^se(?=[0-9]*)/i', $r)) {
$region->nodeValue = 'South East London';
}
else if (preg_match('/^sw(?=[0-9]*)/i', $r)) {
$region->nodeValue = 'South West London';
}
else if (preg_match('/^w(?=[0-9]*)/i', $r)) {
$region->nodeValue = 'West London';
}
else if (preg_match('/^ec(?=[0-9]*)/i', $r)) {
$region->nodeValue = 'East Central London';
}
else if (preg_match('/^wc(?=[0-9]*)/i', $r)) {
$region->nodeValue = 'West Central London';
}
else {
$region->nodeValue = 'Outer London';
}
}
$dom->save('export.xml');
의 우편 번호가 특정에 해당되는 경우 여기
는 XML 파일의 예입니다 값을 입력하면 새로운 자식 노드가 텍스트와 함께 '주소'노드에 추가됩니다.새로운 하위 노드를 생성 할 수있는 몇 가지 문제가 발생했지만 XML 파일의 한 부분에만 많은 요소가 추가 될 것입니다. 각 속성의 isntance와 반대되는 부분이 있습니다. 마디.
나는 이것이 도움이 될 수 있기를 바랍니다. 사전 :
감사합니다. 나는 그것을 시도해 왔지만 그것은 계속 잘못 나온다. 모든 새 노드는 모두 XML 파일에 함께 그룹화되며 '속성/속성/주소'노드마다 추가되지 않습니다. 내가 잘못 될 수있는 어떤 생각? – DL1984
답변에 예제를 추가했습니다. – akkie
감사합니다. @akkie. 나는 이것을 지금 시도 할 것이다. – DL1984