2013-08-18 135 views
1

我想在我的xml數據中使用標準的HTML id和class屬性。我想這樣做是爲了能夠聚合不同組和組合中的元素。如果我在我的xml文檔中使用HTML DTD是可以的。任何幫助將不勝感激。將id和class屬性添加到xml

+1

問題是什麼?你可以在XML中使用屬性。從哪種意義上說,你需要他們是「HTML屬性」,你會使用DTD來做什麼?如果你認爲你可以使用HTML DTD,那麼顯然你的XML將會是* HTML(XHTML)。 –

+0

我想使用它們在HTML中使用的特殊意義上的id和class屬性。我的意思是我應該能夠通過使用getElementById和getElementbyClass函數來訪問XML元素。 – fz300

回答

2

您可以在XML中使用屬性。如果希望將它們視爲「HTML屬性」,以便HTML規範中的處理規則適用於它們,則需要將相關元素聲明爲位於HTML命名空間中。 DTD與此無關。示例(請注意,script元素需要的命名空間太):

<?xml-stylesheet href="dummystyle.css"?> 
<doc> 
<foo xmlns="http://www.w3.org/1999/xhtml" id="id" class="class">dummy</foo> 
<script xmlns="http://www.w3.org/1999/xhtml" > 
console.log(document.getElementById('id').innerHTML); 
console.log(document.getElementsByClassName('class')[0].innerHTML); 
</script> 
</doc> 

您也可以使用包圍相關元素的元素在xmlns屬性,避免重複屬性。但是如果中的所有元素都與HTML元素名稱一致,那麼它將根據HTML進行解釋。

+0

感謝您的優秀回答,儘管XML屬性也可以通過使用DTD來製作特殊的ID屬性,如下所示:'<!DOCTYPE doc [ <!ATTLIST elementname attributename ID#IMPLIED> ]>' – fz300