我正在处理InDesign使用的IDML文件。我在插入特殊指令时遇到了问题。我需要嵌入IDML文件的RightIndentTab。同样的unicode是U+0008。当我尝试添加时,它抛出错误,因为这个unicode在XML规范中不受支持。
我更深入地研究了它,IDML有一个特殊的处理指令,可以插入,现在看起来问题是,当我添加它时,它在RightIndent符号前引入了一个换行。在调试过程中,我发现content元素如下所示
<Content>
<?ACE 8?>9731396</Content>它是一个XElement,当我对它调用ToString()时,我看到\r\n。我也尝试过使用XmlWriter。
我想要的是一个XElement对象,它看起来像
<Content><?ACE 8?>9731396</Content>在进阶时谢谢!
发布于 2012-11-17 00:59:58
我遇到过使用.NET向IDML添加处理指令的完全相同的问题,即使关闭了重要的空格,我也得到了一个换行符,InDesign将其视为文本的一部分。
我找到的唯一解决方案是将文件另存为XML,然后将其作为文本文档打开,并使用正则表达式仅用><?替换>\r\n<?。它是丑陋和笨拙的,但它确实可以工作-我手头没有正则表达式,但您应该能够相当快地弄清楚。
不过,我在向XML添加unicode字符时从来没有遇到过任何问题。我将只使用,并将XmlWriter编码设置为使用unicode。请看这里的示例:http://bytes.com/topic/net/answers/176665-how-write-unicode-using-xmlwriter,它建议:
XmlTextWriter myWriter = new XmlTextWriter( fileStream,
new System.Text.UnicodeEncoding( false, false) );https://stackoverflow.com/questions/13420855
复制相似问题