XMLNode - 범위 지정, 전역

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기9분
  • 범위가 지정된 XMLNode API를 사용하면 XML 노드에서 값을 쿼리할 수 있습니다. XMLNodes는 XML 문자열이 포함된 XMLDocument2 객체에서 추출됩니다.

    XMLNode 객체의 독립 실행형 인스턴스를 만들기 위한 생성자는 없습니다. 대신 기존 문서에 노드를 추가하는 XMLDocument2의 createElement() 메서드를 사용합니다.

    범위가 지정된 XMLNode - getAttribute(String 속성)

    특성의 값을 가져옵니다.

    표 1. 매개변수
    이름 유형 설명
    속성 문자열 속성의 이름입니다.
    표 2. 반환
    유형 설명
    문자열 특성의 값입니다.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//two');
    gs.info(node.getAttribute('att'));

    출력:

    xxx

    범위가 지정된 XMLNode - getAttributes()

    노드의 속성을 값이 있는 속성으로 포함하는 객체를 반환합니다.

    표 3. 매개변수
    이름 유형 설명
    없음
    표 4. 반환
    유형 설명
    객체 이름이 속성이고 값이 속성의 값인 이름-값 쌍을 포함합니다.

    범위가 지정된 XMLNode - getChildNodeIterator()

    자식 노드 목록을 탐색하는 데 사용할 수 있는 XMLNodeIterator 개체를 가져옵니다.

    표 5. 매개변수
    이름 유형 설명
    없음
    표 6. 반환
    유형 설명
    XMLNodeIterator(XMLNodeIterator) 노드 반복기 객체입니다.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//one');
    var iter= node.getChildNodeIterator();
    gs.info(iter.hasNext());

    범위가 지정된 XMLNode - getFirstChild()

    노드의 첫 번째 자식 노드를 가져옵니다.

    표 7. 매개변수
    이름 유형 설명
    없음
    표 8. 반환
    유형 설명
    Xmlnode 노드의 첫 번째 자식 노드입니다.
    var xmlString = "<test>" +
                    "<one>" +
                    "<two att=\"xxx\">abcd1234</two>" +
                    "<three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "<two>another</two>" +
                    "</one>" +
                    "<number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//one');
    gs.info(node.getFirstChild());
    출력:
    <two att="xxx">abcd1234</two>

    범위가 지정된 XMLNode - getLastChild()

    노드의 마지막 자식 노드를 가져옵니다.

    표 9. 매개변수
    이름 유형 설명
    없음
    표 10. 반환
    유형 설명
    Xmlnode 노드의 마지막 자식입니다.
    var xmlString = "<test>" +
                    "<one>" +
                    "<two att=\"xxx\">abcd1234</two>" +
                    "<three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "<two>another</two>" +
                    "</one>" +
                    "<number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//one');
     
    gs.info(node.getLastChild());
    출력:
    <two>another</two>

    범위가 지정된 XMLNode - getNodeName()

    노드의 이름을 가져옵니다. 노드의 이름은 노드 유형에 따라 결정됩니다. 문서 요소 노드의 이름은 #document입니다. 텍스트 노드의 이름은 #text입니다. 요소 노드의 이름은 요소의 이름입니다.

    표 11. 매개변수
    이름 유형 설명
    없음
    표 12. 반환
    유형 설명
    문자열 노드의 이름입니다.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//two');
    gs.info(node.getNodeName());

    출력:

    two

    범위가 지정된 XMLNode - getNodeValue()

    노드의 값을 가져옵니다. 노드의 값은 노드 유형에 따라 결정됩니다. Element 및 document-element 노드는 null을 반환합니다.

    표 13. 매개변수
    이름 유형 설명
    없음
    표 14. 반환
    유형 설명
    문자열 노드의 값입니다.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//two');
    gs.info(node.getNodeValue());

    출력:

    null

    범위가 지정된 XMLNode - getTextContent()

    현재 노드의 텍스트 내용을 가져옵니다. 노드의 텍스트 컨텐츠는 노드의 모든 하위 텍스트 노드로 구성됩니다

    표 15. 매개변수
    이름 유형 설명
    없음
    표 16. 반환
    유형 설명
    문자열 현재 노드의 텍스트 컨텐츠입니다.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmldoc = new XMLDocument2();
    xmldoc.parseXML(xmlString);
    var node = xmldoc.getNode('//one/two');
    gs.info(node.getTextContent());

    출력:

    abcd1234

    범위가 지정된 XMLNode - hasAttribute(String 속성)

    노드에 지정된 속성이 있는지 확인합니다.

    표 17. 매개변수
    이름 유형 설명
    속성 문자열 검사할 특성의 이름입니다.
    표 18. 반환
    유형 설명
    부울 노드에 특성이 있으면 True입니다.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//two');
    gs.info(node.hasAttribute('att'));

    출력:

    true

    범위가 지정된 XMLNode - isCDATANode()

    CDATA 노드가 별도의 노드로 유지되는지 여부를 나타냅니다.

    범위가 지정된 XMLDocument2 - setEnableCDATAReporting(부울 활성화) 메서드를 사용하여 CDATA 노드가 유지되고 텍스트로 처리되지 않도록 합니다.

    표 19. 매개변수
    이름 유형 설명
    없음
    표 20. 반환
    유형 설명
    부울 쿼리된 노드가 CDATA인지 일반 텍스트인지를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 쿼리된 노드는 CDATA입니다.
    • false: 쿼리된 노드가 일반 텍스트입니다.

    다음 예제에서는 를 사용하여 범위가 지정된 XMLDocument2 - setEnableCDATAReporting(부울 활성화)CDATA 보고를 사용하도록 설정된 XML 문자열을 구문 분석하는 방법을 보여 줍니다. 이 코드에서는 isCDATANode() 를 사용하여 XML 문자열에서 쿼리된 첫 번째 노드가 CDATA 노드임을 보여 줍니다.

    var xmlString = "<test>" +
      "  <one>" +
      "    <two att=\"xxx\">abcd1234</two>" +
      "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>"+
      "    <four><![CDATA[another]]>element</four>" +
      "  </one>" +
      "  <number>1234</number>" +
      "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.setEnableCDATAReporting(true); // Enables CDATA reporting
    xmlDoc.parseXML(xmlString);
    var content = xmlDoc.getFirstNode('/test/one/four');
    gs.info(content.getFirstChild().isCDATANode());

    출력:

    true

    범위가 지정된 XMLNode - toString()

    현재 노드의 문자열 값을 반환합니다.

    표 21. 매개변수
    이름 유형 설명
    없음
    표 22. 반환
    유형 설명
    문자열 현재 노드의 문자열 값입니다.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//one');
    gs.info(node.toString());
    출력: 출력에 줄 바꿈이 추가되었습니다.
    <one>    
    <two att="xxx">abcd1234</two>    
    <three att="yyy" boo="yah">1234abcd</three>    
    <two>another</two>  
    </one>