我撰寫了下面的代碼基本上從“點”獲取資料并列印它,所以如果我選擇標記名“點”,它會列印標記中的所有坐標。
但我想決議for回圈中的每個“點”標簽,以便回圈的第一次迭代列印來自第一個“點”標簽的所有坐標,第二次迭代列印來自第二個“點”標簽的坐標,依此類推,
我相應地撰寫了代碼,但它沒有任何安慰,我什至嘗試了 .eq() 和第 n 個孩子,但問題是我有多個“點”標簽
...
<object>
<coordinate>pixel</coordinate>
<type>rectangle</type>
<description>None</description>
<possibleresult>
<name>Intersection</name>
</possibleresult>
<points>
<point>684.999939,182.999985</point>
<point>682.568420,217.040604</point>
<point>612.568420,212.040604</point>
</points>
</object>
...
...
fetch("file.xml")
.then(response => response.text())
.then(data => {
var txt;
txt="";
const parser = new DOMParser();
const xml = parser.parseFromString(data, "application/xml");
console.log(xml);
x = xml.getElementsByTagName("points point");
for (i = 0; i< x.length; i ) {
txt = x[i].childNodes[0].nodeValue "\n";
}
console.log(txt.split("\n")[0]); //prints the first point tag
console.log(txt);
// $(document).ready(function(){
//var x= $("point:nth-child(1)").text();
console.log(x);
});
})
.catch(console.error);
...
uj5u.com熱心網友回復:
parseFromString回傳Document的實體
,您可以在其中使用提供的函式以各種方式獲取所有子項。
這是一個 POC:
const data = "<root><object><coordinate>pixel</coordinate><type>rectangle</type><description>None</description><possibleresult><name>Intersection</name></possibleresult><points><point>684.999939,182.999985</point><point>682.568420,217.040604</point><point>612.568420,212.040604</point><point>614.999939,177.999985</point><point>684.999939,182.999985</point></points></object><object><coordinate>pixel</coordinate><type>rectangle</type><description>None</description><possibleresult><name>Small Car</name></possibleresult><points><point>1.000008,267.000000</point><point>-8.266037,257.072083</point><point>-0.000004,249.357117</point><point>9.266041,259.285034</point><point>1.000008,267.000000</point></points></object><object><coordinate>pixel</coordinate><type>rectangle</type><description>None</description><possibleresult><name>Small Car</name></possibleresult><points><point>267.000000,228.000000</point><point>244.000000,232.000000</point><point>241.944946,220.183472</point><point>264.944946,216.183472</point><point>267.000000,228.000000</point></points></object><object><coordinate>pixel</coordinate><type>rectangle</type><description>None</description><possibleresult><name>Small Car</name></possibleresult><points><point>480.591736,217.018555</point><point>458.591736,218.018555</point><point>458.000000,205.000000</point><point>480.000000,204.000000</point><point>480.591736,217.018555</point></points></object></root>";
const parser = new DOMParser();
const xml = parser.parseFromString(data, 'application/xml');
for(let objectTag of xml.querySelectorAll('root>object')) {
console.log(`=== name: ${objectTag.querySelector('name').textContent} ===`)
for(let x of objectTag.getElementsByTagName('point')) {
console.log(x.textContent)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/495836.html
標籤:javascript xml
上一篇:XML檢查字串是否包含子字串
