Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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从XML文件中提取部分文本_Javascript_Xml_Replace - Fatal编程技术网

使用javascript从XML文件中提取部分文本

使用javascript从XML文件中提取部分文本,javascript,xml,replace,Javascript,Xml,Replace,我试图从下面的XML文件中提取节点内的一部分文本。我设法删除了前面的部分,但没有删除后面的部分。 我正在做一个文本比较,将要提取的部分作为边框。 但是,页面上没有显示任何内容。我在网上搜索并使用了不同的方法,但没有成功,如: `var reg = new RegExp(/If/gi);` `.replaceData( reg , "");` 或: XML: 1.02 处理报告 1. 15 错误 8541 SKU数据。。。。亚马逊目录:品牌(商家:'Stor&ap

我试图从下面的XML文件中提取节点内的一部分文本。我设法删除了前面的部分,但没有删除后面的部分。 我正在做一个文本比较,将要提取的部分作为边框。 但是,页面上没有显示任何内容。我在网上搜索并使用了不同的方法,但没有成功,如:

     `var reg = new RegExp(/If/gi);`
     `.replaceData( reg , "");`
或:

XML:


1.02
处理报告
1.
15
错误
8541
SKU数据。。。。亚马逊目录:品牌(商家:'Stor'/Amazon:'小熊维尼')。
**我要删除的部分=>**如果这是适合您产品的ASIN,请更新您的数据以匹配'他在房间里
亚马逊目录。如果'这不是正确的ASIN,请确保您的标准产品id数据为
对的
30604
17
错误
8541
SKU数据。。。。亚马逊目录:零件号(商户:''/Amazon:'ST-30614')。
**我要删除的部分=>**如果这是适合您产品的ASIN,请更新您的数据以匹配'他在房间里
亚马逊目录。如果'这不是正确的ASIN,请确保您的数据
标准产品标识正确。
30614
HTML和JavaScript:

<!DOCTYPE html>
<html>
<body>

<p id="demo2"></p>

<script>

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
//getting XML File
xhttp.open("GET", "/projectv1/raport", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;

    //Parse specific node 
    var result = xmlDoc.getElementsByTagName("ResultDescription")[0].childNodes[0];

    //delete the first part of the text => The SKU data .... Amazon catalog:
    var a = result.replaceData(0,220, "");

    //trying to delete the second part with a text comparison because the part to extract is variable
    var a = result.replace("This ......","");


    var fin = document.getElementById("demo2");
    fin.innerHTML = a; 


}

</script>
</body>
</html>

var xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ 我的职能(本); } }; //获取XML文件 xhttp.open(“GET”,“/projectv1/raport”,true); xhttp.send(); 函数myFunction(xml){ var xmlDoc=xml.responseXML; //解析特定节点 var result=xmlDoc.getElementsByTagName(“ResultDescription”)[0].childNodes[0]; //删除文本的第一部分=>SKU数据…亚马逊目录: var a=结果.replaceData(0220,“”); //试图通过文本比较删除第二部分,因为要提取的部分是可变的 var a=结果。替换(“此……”,“”); var fin=document.getElementById(“demo2”); fin.innerHTML=a; }
您是否尝试过使用
子字符串
索引
方法

您的问题示例:

var a = result.substring(34, result.indexOf("If"))
文件:

在您的留言之后,我了解了这两种方法。然而,由于某些原因,它不起作用。。。我必须分解这两种方法才能工作,但通过学习这些方法,我发现了一个更简单的方法(在我看来):>split(),我将其用于我的代码:
var att=res.split('catalog:').pop().split('If').shift()
<!DOCTYPE html>
<html>
<body>

<p id="demo2"></p>

<script>

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
//getting XML File
xhttp.open("GET", "/projectv1/raport", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;

    //Parse specific node 
    var result = xmlDoc.getElementsByTagName("ResultDescription")[0].childNodes[0];

    //delete the first part of the text => The SKU data .... Amazon catalog:
    var a = result.replaceData(0,220, "");

    //trying to delete the second part with a text comparison because the part to extract is variable
    var a = result.replace("This ......","");


    var fin = document.getElementById("demo2");
    fin.innerHTML = a; 


}

</script>
</body>
</html>
var a = result.substring(34, result.indexOf("If"))