2013-04-04 27 views
0

我的問題是,當一個XML節點沒有價值,打開和關閉標籤在不同的行這樣XML - JavaScript的 - >如何顯示XML標籤作爲HTML

<td ID="ref_4b73aa95ffd2289_phrPayer_1_DateEffective"> 
</td> 
<td ID="ref_4b73aa95ffd2289_phrPayer_1_DateTerminated"> 
</td> 

當節點有數據,打開和關閉標籤上一行:

<td ID="ref_4b73ba85ffd2289_phrPayer_1_Company">Medicare Parts A&amp;B</td> 

我的問題是,當我讀出的數據,它是逐行讀取。 以下是所使用的XML數據:

<tr> 
    <td ID="ref__phrPayer_1_Company">Medicare Parts A&amp;B</td> 
    <td ID="ref__phrPayer_1_DateEffective"> 
    </td> 
    <td ID="ref__phrPayer_1_DateTerminated"> 
    </td> 
    <td ID="ref__phrPayer_1_PolicyNumber"> 
    </td> 
    <td ID="ref__phrPayer_1_GroupNumber"> 
    </td> 
    <td ID="ref__phrPayer_1_SubscriberName">AdamJulie</td> 
</tr> 

* 以上編碼6列的consistes,雖然如上文所顯示的,有10行的編碼。這是主要問題。 *

當我嘗試使用數據分割成Array以下

var purposeArray = purposeOfVisit.innerHTML.split("\n"); 

我收到的數據是:

Medicate Parts A&amp;B,,,,,,,,,AdamJulie 

當應該是:

Medicare Parts A&amp;B,,,,,AdamJulie 

數組的長度是一樣的行數是10在這種情況下,它應該是5.

我想知道的是我如何與閱讀td標籤數據

我想的innerHTML讀取folling代碼爲例:代替

<td ID="ref__phrPayer_1_Company">Medicare Parts A&amp;B</td> 
<td ID="ref__phrPayer_1_DateEffective"> 
</td> 
<td ID="ref__phrPayer_1_DateTerminated"> 
</td> 
<td ID="ref__phrPayer_1_PolicyNumber"> 
</td> 
<td ID="ref__phrPayer_1_GroupNumber"> 
</td> 
<td ID="ref__phrPayer_1_SubscriberName">AdamJulie</td> 

Medicare Parts A&amp;B 
. 
. 
. 
. 
. 
. 
. 
. 
AdamJulie 

.的表示一個空值。

這是可能的,如果是我該怎麼做?或者用</td>&lt;替換<td>標籤與&lt;<td></td>標籤?

回答

0

innerHTML方法返回HTML標籤內的任何謊言。如果你想獲取的數據的HTML標籤,我建議你使用這樣的:

document.getElementsByTagName('td') 
+0

innerHTML的原因是我使用''來獲取數據。這些標籤存儲在div「purposeOfVisit」中。 – 2013-04-04 06:33:11

+0

林有點困惑。你說你想讓innerHTML閱讀「醫療保險零件A & B」而不是「醫療保險零件A & B」。這是不可能的,innerHTML將不會讀取。我也不確定xslt進入這張圖片的位置,但是你想要的是將'disable-output-escaping =「yes」'添加到這個值? – lassejl 2013-04-04 06:45:03

+0

對不起,也許我應該更深入一點我想要的東西。 xsl文件是轉換xml文件所必需的。 eXML文件不僅用作SataSource,它還用於生成整個網頁。看到''標籤在div中,我想要''得到如上所述。用標籤獲取數據。然後innerHTML將獲得div內的所有數據,包括'​​'標籤。我不確定這是否是一個迂迴的方法來做到這一點,看到我對xml和xslt是一種新鮮感。我發現'disable-output-escaping =「yes」'沒有改變 – 2013-04-04 06:53:54

0

您正在嘗試寫自己的XML解析器,你做錯了。您不能簡單地在行邊界處分割XML,然後分別解析每行。

有很多好的XML解析器可用,最好使用其中的一個。如果你必須自己解析XML,那麼你需要研究解析器寫作的藝術;這對業餘愛好者來說不是一項工作。

+0

感謝您的回覆。然後我會尋找一個XML解析器:) – 2013-04-04 07:19:48

1

而是以這樣的方式使用XML解析器,你可以在一個XML字符串通過流像這樣寫着:

var XMLString = "<tbody><tr><td ID=''>Medicare Parts A&amp;B</td><td ID=''></td><td ID=''></td><td ID=''></td><td ID=''></td><td ID=''>AdamJulie</td></tr><tr><td ID=''>Test2</td><td ID=''></td><td ID=''></td><td ID=''>123</td><td ID=''></td><td ID=''></td></tr></tbody>"; 

在這裏你可以split每列後的字符串:

myXMLArray = XMLString .split("</td>"); 

並使用正則表達式來刪除所有標記。

var regex = /(<([^>]+)>)/ig; 

for(var x = 0; x < XMLString .length; x++) 
{ 
result[x] = XMLString [x].replace(regex, ""); 
} 

古德勒克...