[英]Parsing xml to get the all nodes between two nodes
嗨,我有一個XML如下:
> <body>
> <p>
>
> <xxx>
> <txt>{{<txt>
> </xxx>
> <Err type="Start"/>
> <xxx>
> <txt>f</txt>
> </xxx>
> <xxx>
> <txt>irst_name</txt>
> </xxx>
> <Err type="End"/>
> <xxx>
> <txt>}}</txt>
> </xxx>
> <p> </body>
所以我試圖讓一切之間
<Err type="Start"/> .... <Err type="End"/>
然后提取txt節點值以獲得“ firstName”的輸出
這是我到目前為止的內容,但是在此之后有點迷失了,請幫助。
xml = $(mainXMl).find('p')
$(xml).each(function(wPrgs){
var parentEle = $(xml[wPrgs]).find('Err')
$(parentEle).each(function(childEle){
$.each(this.attributes, function(i, attrib) {
if(attrib.name === "type" && attrib.value === "Start"){
var end= childEle===parentEle.length-1 ? parentEle.nextSibling : parentEle[childEle+1];
// what goes here ?????
}
});
});
});
});
不確定xml結構,但我認為我們可以使用xml2json之類的模塊將xml有效地解析為json / object結構,並將json用於后續操作。 例如,如果我們考慮在xml以下,
<root>
<xxx>
<txt>{{</txt>
</xxx>
<Err type="Start"/>
<xxx>
<txt>f</txt>
</xxx>
<xxx>
<txt>irst_name</txt>
</xxx>
<Err type="End"/>
<xxx>
<txt>}}</txt>
</xxx>
</root>
轉換為json的代碼將是,
var jsonObj = xml2json(xmlInput);
console.log(JSON.stringify(jsonObj, undefined, 4));
會輸出
{
"root": {
"xxx": [
{
"txt": "{{"
},
{
"txt": "f"
},
{
"txt": "irst_name"
},
{
"txt": "}}"
}
],
"Err": [
{
"type": "Start"
},
{
"type": "End"
}
]
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.