用JAVASCRIPT实现操作以下xml:
<InterfaceData>
<DataSource>
<TableGrid>
<Table TableName="A" values="1"/>
<Table TableName="B" values="2"/>
</TableGrid>
</DataSource>
</InterfaceData>
1>.插入节点<Table TableName="C" values="3"/>
2>.取出节点TableName="B"的values值各位帮帮忙详细一点了
<InterfaceData>
<DataSource>
<TableGrid>
<Table TableName="A" values="1"/>
<Table TableName="B" values="2"/>
</TableGrid>
</DataSource>
</InterfaceData>
1>.插入节点<Table TableName="C" values="3"/>
2>.取出节点TableName="B"的values值各位帮帮忙详细一点了
如果在ASP程序中使用VBScript脚本语言
Set objXML = Server.CreateObject("Microsoft.XMLDOM")才可以。
objXML.load(strSourceFile) brstr=chr(13)&chr(10)&chr(9) XMLnode=brstr&"<list>"&brstr & _
"<id>"&id&"</id>"&brstr & _
"<username>"&name&"</username>"&brstr & _
"</list>"&chr(13) set objXML2=Server.CreateObject("Microsoft.XMLDOM")
objXML2.loadXML(XMLnode)
set rootNewNode=objXML2.documentElement
objRootlist.appendChild(rootNewNode)
objXML.save(strSourceFile)米做过.net的xml操作。上面的代码是我做asp的时候写过的,可以实现插入新节点,希望对你有点帮助。
最好是用.net做的了,难道用JAVASCRIPT就真的做不出俩的了?
<html>
<head>
<script language="javascript">
function opXml(){
var doc = new ActiveXObject("MSXML.DOMDocument");
doc.async = false;
doc.loadXML("<Table TableName='C' values='3'/>");
var tablegrid =xmlData.selectSingleNode("//TableGrid"); tablegrid.appendChild(doc.documentElement);
alert(tablegrid.xml);}
</script>
</head>
<xml id="xmlData">
<InterfaceData>
<DataSource>
<TableGrid>
<Table TableName="A" values="1"/>
<Table TableName="B" values="2"/>
</TableGrid>
</DataSource>
</InterfaceData>
</xml>
<body>
<input type="button" onclick="opXml()" value="插入">
</body>
</html>
1>.插入节点<Table TableName="C" values="3"/>
2>.取出节点TableName="B"的values值
------------------------ 建立一个新的text 节点,并包含指定的数据。 基本语法: xmldocument.createTextNode(data);
-
说明:data 是一个代表新text 节点的字符串。一个新的text 节点被建立,但是没有加到文件树中。若要将节点加到文件树中,必须使用插入 方法,例如:insertBefore,replaceChild或appendChild。 使用范例: objNewTextNode = xmlDoc.createTextNode("This is a text node.");
alert(objNewTextNode.xml); getElementsByTagName 方法
-----------------------------
--------------------- 在指定的节点前插入一个子节点。 基本语法: objdocument.ode = xmldocument.ode.insertBefore(newChild,refChild); 说明:newChild 是一个包含新子节点地址的对象,refChild 是参照节点的地址。新子节点被插到参照节点之前。如果refChild 参数没有包含 在内,新的子节点会被插到子节点列表的末端。 使用范例: objRefNode = xmlDoc.document.lement;
alert(xmlDoc.xml);
objNewNode = xmlDoc.createComment("This is a comment");
xmlDoc.insertBefore(objNewNode, objRefNode);
alert(xmlDoc.xml);
<HTML>
<HEAD>
</HEAD>
<BODY>
</BODY>
</HTML>
<SCRIPT>
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
var currNode;
xmlDoc.async = false;
xmlDoc.resolveExternals = false;
//xmlDoc.load("books.xml");
var myxmlstring="<InterfaceData><DataSource><TableGrid><Table TableName='A' values='1'/><Table TableName='B' values='2'/></TableGrid></DataSource></InterfaceData>";
xmlDoc.loadXML(myxmlstring);
if (xmlDoc.parseError.errorCode != 0) {
var myErr = xmlDoc.parseError;
alert("You have error " + myErr.reason);
} else {
//插入节点;只是在内存里面插入了
var currNode=xmlDoc.selectSingleNode("//InterfaceData/DataSource");
var newnode=xmlDoc.createElement("Table");
var newatt=xmlDoc.createAttribute("TableName");
newatt.nodeValue='C';
newnode.attributes.setNamedItem(newatt);
newatt=xmlDoc.createAttribute("values");
newatt.nodeValue='3';
newnode.attributes.setNamedItem(newatt);
currNode.appendChild(newnode);
alert(xmlDoc.xml);
//取得楼主要的值
alert(currNode.childNodes(0).childNodes(1).attributes(1).nodeValue);
}
</SCRIPT>