2010-01-19 9 views
10

simpleXML을 사용하여 xml 파일의 값을 편집하려면 어떻게해야합니까?simpleXML을 사용하여 XML 편집

파일을 만드는 방법을 알고 있지만 기존 파일의 값을 편집하는 방법은 알지 못합니까?

+0

[상위를 사용하지 않고 SimpleXmlElement의 텍스트 값을 설정하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/3153477/how-can-i-set-text-value-of-simplexmlelement- 부모없이 사용) –

답변

13

SimpleXML로 편집 할 수 있습니다 물론 :

$input = <<<END 
<?xml version='1.0' standalone='yes'?> 
<documents> 
    <document> 
    <name>spec.doc</name> 
    </document> 
</documents> 
END; 

$xml = new SimpleXMLElement($input); 
$xml->document[0]->name = 'spec.pdf'; 
$output = $xml->asXML(); 

는 한 번 봐 examples.

7

XML을 SimpleXML로로드하고 변경하십시오. 그런 다음 파일에 XML을 저장 asXML 방법을 사용할 수 있습니다 (당신은 인자로 파일 이름을 통과) :

$xml = new SimpleXMLElement($xmlString); 
// do the manipulation here 
$xml->asXML ('/path/to/your/file.xml'); 
4

SimpleXML로 XML을 편집 할 수는 있지만 제한 사항이 있습니다. 예를 들어 노드 또는 요소를 제거하거나 삭제할 수 있습니다. 빈 칸을 지울 수는 있지만 모든 것을 제거 할 수는 없습니다. 이를 위해서는 DOM이 필요합니다.

0

나는 이와 같이 일하고있다. (상당히 다르지만 도움이 될 것이다.) test.xml 파일은 일반 xml 텍스트이면 모든 확장이 가능하다.

test.xml의 :

<?xml version="1.0" encoding="utf-8"?> 
<sitedata> 
    <Texts> 
     <ANode SomeAttr="Green" OtherAttr="Small"/>This is the text I'm changing.</ANode> 
    </Texts> 
</sitedata> 

그리고 PHP 코드 :

$xml=simplexml_load_file("test.xml") or die("Error: Cannot create object"); 
$SomeVar="<b>Text. This supports html code.</b><br/>I also work with variables, like GET or POST."; 
$xml->Texts[0]->{'ANode'}=$SomeVar; 
$xml->asXml('test.xml'); 

결과 test.xml의 :

<?xml version="1.0" encoding="utf-8"?> 
<sitedata> 
    <Texts> 
    <ANode SomeAttr="Green" OtherAttr="Small"/>&lt;b&gt;Text. This supports html code.&lt;/b&gt;&lt;br/&gt;I also work with variables, like GET or POST.</ANode> 
    </Texts> 
</sitedata> 

는 희망이 도움이!

관련 문제