2013-02-11 2 views
2

처음부터 WXR 파일을 만들려고합니다 (WordPress eXtended Rss).SimpleXML : "xmlns : wp"속성을 추가하면 "wp"만 추가됩니다. 이유가 무엇입니까?

내 코드가 워드 프레스에 의해 생성 된 XML/WXR 파일을 기반으로하고 다음과 같이 시작합니다 :이 메신저 인쇄 XML 후

$newxml = new SimpleXMLElement("<rss></rss>"); 
$newxml->addAttribute('version', '2.0'); 
$newxml->addAttribute('xmlns:excerpt', 'http://wordpress.org/export/1.2/excerpt/'); 
$newxml->addAttribute('xmlns:content', 'http://purl.org/rss/1.0/modules/content/'); 
$newxml->addAttribute('xmlns:wfw', 'http://wellformedweb.org/CommentAPI/'); 
$newxml->addAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); 
$newxml->addAttribute('xmlns:wp', 'http://wordpress.org/export/1.2/'); 

을 :

<?xml version="1.0" encoding="UTF-8" ?> 

<rss version="2.0" 
    xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/" 
    xmlns:content="http://purl.org/rss/1.0/modules/content/" 
    xmlns:wfw="http://wellformedweb.org/CommentAPI/" 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:wp="http://wordpress.org/export/1.2/" 
> 

나는 다음과 같이 시작 이렇게 :

echo htmlspecialchars($newxml->asXML()); 
이 같은

임 점점 XML :

<?xml version="1.0"?> 
<rss version="2.0" 
    excerpt="http://wordpress.org/export/1.2/excerpt/" 
    content="http://purl.org/rss/1.0/modules/content/" 
    wfw="http://wellformedweb.org/CommentAPI/" 
    dc="http://purl.org/dc/elements/1.1/" 
    wp="http://wordpress.org/export/1.2/"> 

    <channel/> 
</rss> 

이 (내가 더 나은 가독성을 위해 줄 바꿈을 추가).

"excerpt"대신 "xmlns : excerpt"와 같은 전체 속성을 강제로 적용하는 방법은 무엇입니까?

답변

3

콜론 앞에있는 부분을 "네임 스페이스"라고하며 별도로 지정해야합니다. addAttribute의 경우 세 번째 매개 변수입니다.

$newxml->addAttribute ('excerpt', 'http://wordpress.org/export/1.2/excerpt/', 'xmlns'); 
+0

감사합니다. 그것은 도움이되었지만''를 추가 할 필요가있을 때 또 다른 문제가 생겼습니다. 다음 질문을위한 주제처럼 보입니다 : – Kamil

+0

놀라움 :'addChild'도 "namespace"매개 변수를 가짐) –

+0

정말. 나는 이것을 시도했다. 이 ''과 비슷한 것을 원하고 <2 xmlns = one>을 얻고 싶습니다. "xmlns"속성으로 추가합니다. – Kamil

관련 문제