2012-06-12 47 views
2

我注意到rapidxml將非法<<element/>解析爲名爲<element的元素,而不是產生錯誤。rapidxml中可能有bug - 但我不知道如何修復

我覺得問題是lookup_node_name的定義。註釋是

// Node name (anything but space \n \r \t/> ? \0) 

我從w3.org specification明白的是,名稱可以有字母,數字和其他一些字符。

我不確定什麼是正確的修復。有什麼建議麼?

+1

沒有發佈代碼,沒有什麼人可以爲你做。 – jxh

回答

1

從查看rapidxml代碼,lookup_node_name是有效名稱字符的查找表,正如註釋所述,僅禁止特定的幾個字符。

我想嘗試通過將ASCII字符0x3C的查找條目從0設置爲1來將'<添加到禁用字符列表中。即,在與字符0x30..0x3f有關的行上,將其更改爲.. 。

 // 0 1 2 3 4 5 6 7 8 9 A B C D E F 
... 
     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, // 3 

這樣:

  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, // 3 

這可能爲你工作,但我還沒有嘗試過。我看到你已經試圖通過sourceforge與開發人員聯繫,這可能是最好的方法...

+0

它將適用於這個特定的輸入,不錯,但我仍然喜歡開發者的迴應;特別是如果我想提交修復程序。 – ModdyFire

相關問題