개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.26 22:16

DOMElement::removeAttributeNS 사용 방법에 대해 도움을 요청합니다.

목록
  • 깃허브매니아 오래 전 2025.05.26 22:16 인기
  • 116
    1
제가 DOMElement::removeAttributeNS 함수를 사용하여 namespace를 가진 attribute를 제거하려고 하는데요,
어떻게 namespace를 지정해야 하는지 정확히 모르겠습니다.

예를 들어, 다음과 같이 namespace를 가진 attribute를 생성한 후에 제거하려고 하는데요,
xml



  





이 경우, `removeAttributeNS` 함수의 첫 번째 인자는 namespace URL을, 두 번째 인자는 attribute 이름을 지정해야 하는데요,
어떻게 namespace URL을 지정해야 하는지 정확히 모르겠습니다.

php

$doc = new DOMDocument();

$root = $doc->createElement('root');

$root->setAttributeNS('http://example.com/ns', 'ns:attr', 'value');

$root->setAttributeNS('http://example.com/ns', 'ns:attr2', 'value2');



$element = $root->getElementsByTagName('element')->item(0);

$element->removeAttributeNS('http://example.com/ns', 'ns:attr'); // 이 경우는 정상적으로 작동합니다.

$element->removeAttributeNS('http://example.com/ns', 'ns:attr2'); // 이 경우는 정상적으로 작동합니다.

$element->removeAttributeNS('http://example.com/ns', 'ns:attr3'); // 이 경우는 에러가 발생합니다.



위의 예제에서, `$element->removeAttributeNS('http://example.com/ns', 'ns:attr3');` 라인에서 에러가 발생하는데요,
어떻게 namespace URL을 지정해야 하는지 정확히 모르겠습니다.

위의 예제에서, `$element->removeAttributeNS('http://example.com/ns', 'ns:attr3');` 라인에서 에러가 발생하는데요,
어떻게 namespace URL을 지정해야 하는지 정확히 모르겠습니다.

위의 예제에서, `$element->removeAttributeNS('http://example.com/ns', 'ns:attr3');` 라인에서 에러가 발생하는데요,
어떻게 namespace URL을 지정해야 하는지 정확히 모르겠습니다.

제가 잘못된 namespace URL을 지정한 경우, 에러가 발생

    댓글목록

    profile_image
    나우호스팅  오래 전



    DOMElement::removeAttributeNS 함수를 사용하여 namespace를 가진 attribute를 제거할 때, namespace URL을 지정하는 방법은 다음과 같습니다.

    - 첫 번째 인자는 namespace URL을, 두 번째 인자는 attribute 이름을 지정합니다.
    - namespace URL은 attribute의 namespace URL과 일치해야 합니다.
    - attribute 이름은 attribute의 이름을 지정합니다.

    위의 예제에서, `$element->removeAttributeNS('http://example.com/ns', 'ns:attr3');` 라인에서 에러가 발생하는 이유는 attribute 'ns:attr3'이 존재하지 않기 때문입니다.

    attribute 'ns:attr3'을 생성한 후에 제거하려고 하는 경우, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    $doc = new DOMDocument();
    
    $root = $doc->createElement('root');
    
    $root->setAttributeNS('http://example.com/ns', 'ns:attr', 'value');
    
    $root->setAttributeNS('http://example.com/ns', 'ns:attr2', 'value2');
    
    $root->setAttributeNS('http://example.com/ns', 'ns:attr3', 'value3');
    
    
    
    $element = $root->getElementsByTagName('element')->item(0);
    
    $element->removeAttributeNS('http://example.com/ns', 'ns:attr');
    
    $element->removeAttributeNS('http://example.com/ns', 'ns:attr2');
    
    $element->removeAttributeNS('http://example.com/ns', 'ns:attr3');
    
    


    위의 코드를 실행하면 attribute 'ns:attr3'이 제거됩니다.

    2025-05-26 22:17

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,115건 / 91 페이지

검색

게시물 검색