2013-11-04 4 views
0

xml 파일의 주석을 특정 요소에 추가하려고합니다. 모든 요소에는 고유 한 이름이 있습니다. 내가 시도xpath를 사용하여 SimpleDOM에 주석 달기

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
     <string name="debug">You wish you could use that!</string> 
     <string name="author">foobar</string> <!-- Insert author name here --> 
     <string name="error">Wutfuq</string> <!-- New! --> 
</resources> 

그리고 여기 내 PHP 파일 : 그것은 단지 문자열 요소와 복수형 등

여기에 내가 댓글을 추가하는 내 첫 번째 시도에 사용하는 조각이야을 포함, 그래서 내 파일은 변환 파일입니다 "debug"라는 이름의 요소에 주석을 추가하려면 다음을 입력하십시오.

<?php 
error_reporting(E_ALL); 
include "SimpleDOM.php"; 

$xml = simpledom_load_file("strings.xml"); 

$xml->xpath("//string[@name='debug']")->insertComment(' This is a test comment ', 'after'); 
$xml -> asXML('test.xml'); 
echo "This line should be shown, otherwise there might be some error"; 
?> 

제 문제는 이것이 작동하지 않는다는 것입니다. 전체 페이지가 흰색이므로 오류가없고 test.xml이 생성되지 않으므로 xpath를 사용하는 동안 주석을 추가하려고하는 라인에 오류가있는 것 같습니다.

도움을 주셔서 감사 드리며 DOM을 사용하도록 설득하지 마시기 바랍니다.

답변

0

According to the PHP doc, SimpleXMLElement :: xpath()는 배열을 반환합니다. insertComment()를 사용하여 체인을 연결할 수 없습니다.

편집 : 당신은 SimpleDom으로 만 값에 isertComment를 사용할 수 있습니다

$result = $xml->xpath("//string[@name='debug']") 
$result[0]->insertComment(' This is a test comment ', 'after'); // after, append or before 
$xml->asXML('test.xml'); 
+0

좋아요. 그렇다면 name = "debug"속성을 사용하여이 특정 요소 (문자열)에 액세스하는 올바른 방법은 무엇입니까? –

+0

고마워, 그 트릭을 했어, 내가 이렇게 사용하게 되겠지. current ($ xml-> xpath ("// string [@ name = 'debug']"))>> insertComment ('이것은 테스트이다. 주석 ','이후 '); –

+0

또한 오타를 수정하십시오. 일부 사용자는 코드를 복사 할 수 있으며 첫 줄에 오타가 있기 때문에 오류가 반환됩니다 ($ resul). –