DOMXML 함수 노트

7118 단어 DOOMMXXMMLL 편지
지지* 지원 하지 않 음* 따라서 이렇게 개조 해 야 합 니 다.*utf 8 이 필요 할 수 있 습 니 다.encode() utf8_decode()함수 처리**함수 목록*string domxmlversion(void)  domxml 버 전 번호*object xmldoc(string str)되 돌려 주기    문자열 에서 XML 을 만 드 는 Domdocument 대상*object xmldocfile(string filename)   파일 에서 XML 을 만 드 는 Domdocument 대상*object xmltree(string str)   xml 문 서 를 분석 하고 트 리 구 조 를 되 돌려 줍 니 다.domxml 함수 로 변경 할 수 없습니다*resource domxmladd_root(resource doc,string name)  루트 노드 추가*string domxmldumpmem(resource doc)  domxml 대상 을 XML 문자열 로 변환 합 니 다.이 함수 에 문제 가 있 습 니 다.그 는 첫 번 째 한자 앞 에 확장 ascii 문 자 를 추가 할 것 입 니 다.예 를 들 어&\#nnn;*domxml_node_attributes* domxml_elem_get_attribute* domxml_elem_set_attribute* array domxml_node_children(object doc|node)  하위 노드 되 돌리 기*domxmlnode_new_child* object domxml_node(string name)  노드 노드 만 들 기*domxmlnode_unlink_node* int domxml_node_set_content(resource doc,string content)  노드 내용 설정*object domxmlnew_xmldoc(string version)  새 빈 XML 대상 만 들 기*xpathnew_context* xpath_eval* xpath_eval_expression* xptr_new_context* xptr_eval* object domxml_root(object doc)  루트 노드 되 돌리 기*array domxmlattributes(resource note)  노드 속성*object domxml 가 져 오기get_attribute(resource doc,string name)  읽 기 속성*domxmlgetattr* object domxml_set_attribute(resource doc,string name,string value)  속성 추가*domxmlsetattr* array domxml_children(object doc|node)  하위 노드 되 돌리 기*resource domxmlnew_child(string name,string content)  하위 노드 추가*domxmlunlink_node* set_content* new_xmldoc**/?>
 xml 문 서 를 읽 을 때 프로세서 가 트 리 를 만 들 것 입 니 다.원본 트 리 라 고 합 니 다.이 나 무 는 표 의 다양한 종류의 노드 를 가지 고 있 습 니 다.소스 트 리 가 가지 고 있 는 노드설명
노드 유형
루트(뿌리)이것 은 나무의 뿌리 노드 입 니 다.나무 어디 든 나타 날 수 있다.루트 노드 는 하위 노드 만 있 고 하위 노드 는 xml 문서 의 문서 요소 노드 를 말 합 니 다.
Element(요소)이 노드 는 문서 의 모든 요소 에 사 용 됩 니 다.요소 노드 의 하위 노드 는 그 내용 의 요소 노드,주석 노드,처리 정보 노드 와 텍스트 노드 일 수 있 습 니 다.
Text(텍스트)문서 에 나타 난 모든 텍스트 를 텍스트 노드 에 묶 습 니 다.텍스트 노드 는 같은 텍스트 노드 의 이 어 진 앞 또는 뒤의 형제 노드 가 있어 서 는 안 됩 니 다.
Attribute(속성)모든 요소 노드 는 자신 이 추가 한 속성 노드 가 있 습 니 다.기본 속성 값 은 지정 한 속성 과 같은 방법 으로 처리 합 니 다.이 노드 들 은 모두 하위 노드 가 없다.
Namespace(이름)는 각각 xlmns:와 속성 노드 로 시작 하 는 요소 에 대해 이름 빈 칸 노드 가 있 습 니 다.이 노드 들 은 하위 노드 가 없습니다.
Processing Instruction(처리 명령)모든 처리 명령 은 하나의 단독 노드 가 있 습 니 다.이 노드 들 은 모두 하위 노드 가 없다.
Comment(주석)각각 주석 노드 가 있 습 니 다.이 노드 들 은 모두 하위 노드 가 없다.
';echo"domxml 버 전:".domxmlversion();echo "

  

";// xmltree domxml_dumpmem$filename="xml 소스 트 리.xml";/$filename = "resume.xml";$fp = fopen($filename,"r"); $inXML = fread($fp,filesize($filename)); fclose($fp); // 언어 설정 삭제//$inXML=strreplace(' encoding="GB2312"',"",$inXML);$inXML = eregi_replace(' encoding="[a-z0-9_-]+"',"",$inXML);$doc = xmltree($inXML);    // xmltree 로$myxml=$doc->dumpmem()분석 하기;  // 문자열  xml version="1.0"                           // 만약 다시 한 번 집행 한다 면,머리 는  xml version="1.0" encoding="ISO-8859-1"//$myxml = eregi_replace('&#[0-9]+;',"",$myxml); // echo"xmltree 로
해석 하기"삭제 하기;echo "
";//print_r($doc);  // 나무 전 체 를 볼 수 있 고 vardump($doc);// xmldoc$doc = xmldoc($inXML); $myxml = $doc->dumpmem();echo"xmldoc 로
해석 하기;echo "
";//print_r($doc); // 루트 노드 만 볼 수 있 습 니 다//domxmlnew_xmldoc$doc = domxml_new_xmldoc("1.0");$root = $doc->add_root("HTML");$head = $root->new_child("HEAD", "");$head->new_child("TITLE","DOMXML 테스트 0");$head->new_child("TITLE","DOMXML 테스트 1");$head->set_attribute("Language", "ge");domxml_node_set_content($head,"ppp"); // 노드 의 내용 을 설정 하고 여러 번 실행 하 는 것 은 중 첩 된 domxml 입 니 다.node_set_content($head,"ttt");// 함수 명 중 1-2 개 밖 에 없 는''입 니 다.의 함수,대상 으로 사용 할 수 있 는 방법 은$myxml=$doc->dumpmem();echo"사용자 정의 xml
";echo "
";// 노드 의 옮 겨 다 니 기/*  노드 구조  DomElement Object    type = 1    tagname=노드 이름  DomText Object    type = 3    content=절 내용 점  DomCData Object    type = 4    content=절 내용 점  DomProcessingInstruction Object    type 없 음    target=처리 명령    data=인자*/$ar[]=$doc->root();  // 루트 노드$ar[]=$ar[count($ar)-1]->children()가 져 오기;$ar[] = $ar[count($ar)-1][0]->children();// 함수 domxmlchildren()노드 매개 변 수 를 되 돌려 줄 수 없습니다//노드 매개 변 수 를 되 돌려 주 려 면 domxml 을 사용 해 야 합 니 다.attributes()//var_dump(domxml_attributes($head));//print_r($ar[1][0]->attributes());//print_r($ar);function xml_dumpmem($xmldoc) {  static $mode = 0;  $xmlstr = "";  // 노드 가 져 오기,배열 에 저장  if(get_class($xmldoc) == "DomDocument") {    $xmlstr = ''."";    if(count($xmldoc->children) == 1)  // 루트 노드,다른 멤버 없 음      $docs[] = $xmldoc->root();    else      $docs = $xmldoc->children();  // 루트 노드,다른 멤버 가 있 습 니 다.  }else {    $docs = $xmldoc->children();  // 일반 노드  }//  echo __LINE__."
";  foreach($docs as $doc) {    $attr = $doc->attributes();    switch($doc->type) {      case 1:        $xmlstr .= "<{$doc->tagname}";  // 라벨 헤드        if($attr) {          foreach($attr as $key)            $xmlstr .= " {$key->name}=\"{$key->value}\"";  // 태그 매개 변수        }        $xmlstr .= ">";  // 태그 끝        $xmlstr .= xml_dumpmem($doc);  // 진입 부 노드        $xmlstr .= "tagname}>";  // 라벨 닫 기        break;      case 3:        $xmlstr .= $doc->content;        break;      case 4:        $xmlstr .= "content;        $xmlstr .= "]]>";        break;      default:        if(get_class($doc) == "DomProcessingInstruction") {          $xmlstr .= "target}";          $xmlstr .= " {$doc->data}?>";        }        break;    }  }  return $xmlstr;}if(1) {  $filename = "resume.xml";//  $filename = "resume.xsl";  $filename="xml 소스 트 리.xml";  $fp = fopen($filename,"r");   $inXML = fread($fp,filesize($filename));   fclose($fp);   $inXML = eregi_replace(' encoding="[a-z0-9_-]+"',"",$inXML);//  $doc = xmltree($inXML);    // xmltree 분석 사용 하기  $doc = xmldoc($inXML);    // xmldoc 해석}//xsl 문 서 를 해석 할 수 없습니다$myxml=xmldumpmem($doc);echo"스스로 dumpmem 을 쓰 면 틀 리 지 않 습 니 다
";echo "
";print_r($doc);?>

좋은 웹페이지 즐겨찾기