2013-08-18 56 views
1

我試圖創建下面的代碼的XML文件:在TEMPLATE.XML文件中包含該PHP的SimpleXML出意外的錯誤

$xmlfile='template.xml'; 
$xml = simplexml_load_file($xmlfile); 
$xml->asXML('12801.xml'); 

<?xml version="1.0" standalone="yes"?> 
<posts> 
    <1president/> 
    <2vice-president/> 
    <3secretary/> 
    <4assistant-secretary/> 
    <5science-secretary/> 
    <6dramatic-secretary/> 
    <7athletic-secretary/> 
</posts> 

它扔了很多錯誤的說:

Warning: simplexml_load_file(): template.xml:3: parser error : StartTag: invalid element name in try.php on line 3 

這裏有什麼問題?盡我所知,template.xml中的xml似乎是有效的。

+1

元素名稱區分大小寫。 必須以字母或下劃線('_')開頭。 初始字符後是否允許: 位數 週期('.') 連字符('-') 下劃線('_') 冒號(':' - 合法的,但不應該被除了名字空間 NO其它使用字符允許像#,@,$,%.... http://www.w3.org/TR/REC-xml/#NT-NameChar –

+0

我只用simplexml創建了template.xml文件,它沒有' t顯示當時有任何錯誤 – RatDon

+0

哦,所以我很抱歉XML的w3c RFC在其定義中不正確,錯誤地指出數字對於標籤名稱是無效的starct字符 –

回答

4

XML標籤不能以數字開頭。它應該總是以下列字符開始:

[A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]

像這樣的東西應該工作:

<posts> 
    <president/> 
    <vice-president/> 
    <secretary/> 
    <assistant-secretary/> 
    <science-secretary/> 
    <dramatic-secretary/> 
    <athletic-secretary/> 
</posts> 

您可以輕鬆地使用在線XML驗證,如this one驗證這一點。

請參閱此處的文檔:http://www.w3.org/TR/REC-xml/#NT-NameStartChar