プロジェクトで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>