프로젝트에서 SQL을 사용하여 페이지를 조작하고 읽는 경우 데이터베이스의 Xml 필드에 정보를 표시해야 합니다. 이 경우에는 필연적으로 너무 복잡해질 수밖에 없기 때문에 Xml 필드를 먼저 읽어본 후 JS를 이용하여 조작하면 훨씬 간단할 것 같아서 인터넷에서 정보를 좀 찾아봤습니다. Xml 필드 정보를 읽는 JS 메소드를 구현했습니다.
먼저 Xml 필드를 담기 위해 페이지에 TextBox를 배치합니다. 기억하세요: Xml 필드 정보에 ""와 같은 기호가 있으면 페이지에서 Js 오류가 생성되므로 레이블을 사용할 수 없습니다.
다음 단계가 핵심입니다. JS 코드 결제:
function createXml(str){ if(document.all){ var xmlDom=new ActiveXObject("Microsoft.XMLDOM") xmlDom.loadXML(str) return xmlDom } else return new DOMParser().parseFromString(str, "text/xml") }
//위 방법은 문자열을 Xml로 인스턴스화하는 것입니다
마지막 단계는 이 Xml을 작동하는 것입니다
window.onload=function () { var str=document.getElementById("ctl00_ContentPlaceHolder1_TextBox1").value; var obj=createXml(str); //得到根节点 var root_node=obj.documentElement; var yh1=""; for (i=0;i< root_node.childNodes[0].childNodes.length-1;i++) { yh1+=" "+(i+1)+"、"+root_node.childNodes[0].childNodes[i].getAttribute("Remark")+":"+root_node.childNodes[0].childNodes[i].firstChild.nodeValue ; yh1+="<br/>" } document.getElementById("ctl00_ContentPlaceHolder1_lblContent").innerHTML=yh1; } }
Xml 형식으로 결제:
<Info Remark="文件模板"><Common Remark="通用配置"><DisCopy Remark="复印件折扣">100</DisCopy><DisOriginal Remark="折扣">100</DisOriginal><ArrearageLimit Remark="欠费上限">0</ArrearageLimit><YearPrice Remark="年费,元/年">0</YearPrice></Common></Info>