JavaScript is required
Kotae
Touko
2 years ago|views:114

获取xml对象节点属性,内容

export const getNodeAttributes = (node, keys = []) => {

    let obj = {[node.nodeName]:{}}
    for (let i of keys) {
        obj[node.nodeName][i] = node.attributes.getNamedItem(i).value
    }
    return obj
}

export const getNodesAttributes = (nodes, obj = {}) => {
  if (nodes.length && !obj[nodes[0].nodeName]) {
    obj[nodes[0].nodeName] = [];
  }

  for (let i of nodes) {
    if (obj[i.nodeName]) {
      let children = {};
      if (i.children.length) {
        children = getNodesAttributes(i.children, {});
      }
      let res = Object.values(i.attributes).reduce((a, c) => {
        a.push(c.name);
        return a;
      }, []).reduce((acc, cur) => {
        acc[cur] = i.attributes.getNamedItem(cur).value;
        return acc;
      }, {});
      obj[i.nodeName].push(Object.assign(children, res));
    } else {
      obj[i.nodeName] = [];
    }
  }
  return obj;
};


export const getNodeContent = (node) => {
    let obj = {}
    obj[node.nodeName] = node.textContent
    return obj
}

 export const changeToXml = (str) =>{
    const parser = new DOMParser();
    return parser.parseFromString(str, "text/xml");
    
 }

 export const tableScrollToRow = (ref,rowIndex)=>{
    const tableRows = ref.value.$el.querySelectorAll(
        ".el-table__body-wrapper tbody .el-table__row"
      );
      let scrollTop = 0;
      for (let i = 0; i < tableRows.length; i++) {
        if (i === rowIndex) {
          break;
        }
        scrollTop += tableRows[i].offsetHeight;
      }
      ref.value.scrollTo(0, scrollTop);
 }

tags:

JavaScript
xml
3
1
comments:
Touko 法国
☺️☺️☺️☺️☺️😄😄😄😄
2024-10-30
hanTan 上海市南汇区 电信
😃
2024-11-19
2 replies view more
Touko 上海市南汇区 电信
@hanTan : 11
2024-11-26
2 replies view more