Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取子元素之前的文本内容和子元素之后的文本内容?_Javascript_Xml - Fatal编程技术网

Javascript 获取子元素之前的文本内容和子元素之后的文本内容?

Javascript 获取子元素之前的文本内容和子元素之后的文本内容?,javascript,xml,Javascript,Xml,在下面的标记中,我知道我可以使用textEl.textContent获得文本元素的全文内容。但是,如果我想得到textContent中位于元素子元素之前的部分,而您和textContent在yes之后作为两个单独的字符串,我该怎么做呢 <?xml version="1.0" standalone="no"?> <g font-family="Verdana" font-size="45" > <text x="200" y="150" fill="blu

在下面的标记中,我知道我可以使用textEl.textContent获得文本元素的全文内容。但是,如果我想得到textContent中位于元素子元素之前的部分,而您和textContent在yes之后作为两个单独的字符串,我该怎么做呢

<?xml version="1.0" standalone="no"?>
  <g font-family="Verdana" font-size="45" >
    <text x="200" y="150" fill="blue" >
      But you
        <tspan dx="2em" dy="-50" font-weight="bold" fill="red" >
          are
        </tspan>
        <tspan dy="100">
           a peach!
        </tspan>
      yes
    </text>
  </g>
</svg>

使用textEl.childNodes,它是所有子节点的数组,用于textEl,包括元素和文本内容。

如下所示。以相关节点类型为例

常量xmlString=` 但是你 是 桃子! 对 ` let parser=new DOMParser 让doc=parser.parseFromStringxmlString,application/xml 常量cn=[…doc.querySelector[fill=blue].childNodes]; //减少 让node3=cn.reduceac,node=>{ 如果node.nodeType==3{ const txt=node.textContent.trim; 如果txt!==acc.pushtxt; } 返回acc; }, [] console.lognode3 //或过滤器加映射 node3=cn.filternode=>node.nodeType==3&&node.textContent.trim!== .mapnode=>node.textContent.trim console.lognode3