我正在使用InDesign使用的IDML文件。我在插入特殊指令時遇到問題。我需要用IDML文件嵌入RightIndentTab。同樣的unicode是U + 0008。當我試圖補充說它會拋出錯誤,因爲這個unicode在XML規範中不被支持。IDML RightIndentTab導致換行
我對它進行了更多的研究,並且IDML有一個特殊的處理指令,它可以被插入,看起來像現在問題是當我添加它時,它會在RightIndent符號之前引入換行符。在調試我發現,內容元素看起來像
<Content>
<?ACE 8?>9731396</Content>
這是一個的XElement,我看到\ r \ n當我打電話的ToString()就可以了。我也嘗試使用XmlWriter。
我想是的XElement對象,它看起來像
<Content><?ACE 8?>9731396</Content>
在先進的感謝!
感謝您的回覆。這當然是在文件系統上轉儲XML之後再次處理文件的一個解決方案。在我們把它放到文件系統之前,我們能做到這一點嗎? –
不是一旦你已經掌握了處理指令。 InDesign的缺點是 - 它不應該將開頭的''標籤和處理指令之間的空格表示爲重要的,但顯然他們的解析器將' '節點內的所有內容視爲字符串而不是XML。您最好的選擇是在Unicode模式下使用XmlTextWriter,它應該允許您插入十六進制Unicode字符,例如'&#x0008;'您需要確保文檔保存爲UTF-16(不是UTF-8) - 那麼我認爲你的特殊角色應該工作。 –
JcFx
據我所知,它不起作用,因爲它是一個BACKSPACE字符,它在XML規範中是不受支持的字符。這可能是IDML引入這個特殊的XML處理指令來代替它們的原因。 –