js如何遍历取得xml中每个字节点的值

JavaScript013

js如何遍历取得xml中每个字节点的值,第1张

1、用 childNodes 属性,按顺序取

实现过程:首先创建一个 xml 对象,然后载入 xml 文件,再根据待取节点父节点在 xml 文件中的序号和本身的序号,确定待取节点的位置,最后返回待取节点的值。

//pId 待取节点父节点序号//cId 待取节点序号

function getXmlNodeValue(pId, cId) {

    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

    xmlDoc.async = false

xmlDoc.load("employeeInfo.xml")

var nodes = xmlDoc.documentElement.childNodes[pId].childNodes[cId]return nodes.childNodes[0].text

}

//调用方法:

alert(getXmlNodeValue(1, 2))

2、用 for 循环来取

实现过程:首先创建一个 ie 支持的 xml 对象,如果发生异常,是创建一个 FireFox 支持的空 xml 对象并返回空;然后载入 xml 文件,如要发生异常也返回空;最后,通过 for 循环遍历查找与传入的节点值相同的节点,找到后返回属于该节点的属性值。

//nodeValue 待取节点的所属节点值

function getXmlNodeValueFor(nodeValue){    

    var xmlDoc 

  try { 

    //创建一个 ie 支持的 XML 文档对象 

    xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

  }catch(e){

      try{

      //创建FireFox空的XML文档对象

      xmlDoc=document.implementation.createDocument("","",null)

}catch(e){

  alert(e.message)

  return ""

}

}

xmlDoc.async = false

try { 

    xmlDoc.load("employeeInfo.xml")

}catch(e){

    alert(e.message)

    return ""

}

var xd=xmlDoc.documentElement.childNodes

if(xd==null) 

    return ""

 var tempValue

for(var i=0i<xd.lengthi++){

    if(xd[i].childNodes[0].childNodes[0].nodeValue==nodeValue)        tempValue=xd[i].childNodes[2].childNodes[0].nodeValue

}

return tempValue

}

//调用方法:

alert(getXmlNodeValueFor("王佳琳"))

步骤如下:1、建立虚拟用户口令库文件

口令库文件中奇数行设置用户名,偶数行设置口令

# vi /etc/vsftpd/logins.txt 注意,一下是4行

upload 这个是帐户名

upload 这个是密码

download

download2、生成vsftpd的认证文件

# db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db

设置认证文件只对用户可读可写

# chmod 600 /etc/vsftpd/vsftpd_login.db

3、建立虚拟用户所需的PAM配置文件

# vi /etc/pam.d/vsftpd.vu

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

注意:以上2行中最后的2个文件名vsftpd_login和第2个步骤中的数据库名字必须一致!4、建立虚拟用户所要访问的目录并设置相应权限

# mkdir /home/ftpsite

# useradd -d /home/ftpsite virtual(用户名)

# chown virtual:virtual /home/ftpsite

# chmod 700 /home/ftpsite/ 5、设置vsftpd.conf配置文件

guest_enable=YES

guest_username=virtual

pam_service_name=vsftpd.vu 6、设置主配置文件

在vsftpd.conf文件中添加用户配置文件目录设置

user_config_dir=/etc/vsftpd_user_conf

# service vsftpd restart7、建立用户配置文件目录

使用mkdir命令建立用户配置文件目录

# mkdir /etc/vsftpd_user_conf

为虚拟用户建立单独的配置文件,用户配置文件名称与用户名相同

touch /etc/vsftpd_user_conf/upload

touch /etc/vsftpd_user_conf/download8、每个FTP虚拟用户都可以独立设置其权限vi /etc/vsftpd_user_conf/upload

anon_world_readable_only=NO 可读可下载

anon_upload_enable=YES 可上传

anon_mkdir_write_enable=YES 可创建和删除文件夹

anon_other_write_enable=YES 可文件改名和删除文件

local_root=/home/ftpsite/upload 指定upload的宿主目录download_enable=NO 禁止下载

(注意:请先到/home/ftpsite下面去创建upload文件夹)