免责声明:以下是针对XML的罪行.这就是我试图用XSLT改变它的原因:)
我的XML目前看起来像这样:
是的,我将所有文本数据放在属性中.我希望XSLT能救我; 我想走向这样的事情:
到目前为止,我实际上已经完成了所有这些工作,除了我对XML的罪恶更加特殊.一些标签看起来像这样:
我在linux下使用xsltproc,但它似乎没有任何保留空格的选项.我试图使用xsl:preserve-space和xml:space ="preserve"无济于事.我发现的每个选项似乎都适用于在元素本身内保留空格,而不是属性.每一次,以上都改为:
This is the first line This is the third line. That second line full of whitespace is meaningful
所以问题是,我可以保留属性空白吗?
这实际上是一个原始的XML解析问题,而不是XSLT可以帮助您的东西.根据XML标准中的"3.3.3属性值规范化",XML解析必须将该属性值中的换行符转换为空格.所以当前正在阅读你的描述属性和保持换行的任何东西都是错误的.
您可以通过预处理XML来恢复换行符,以便将换行符转移到 字符引用,只要你还没有得到不允许使用charrefs的换行符,例如标记体内部.Charrefs应该作为控制字符存活到属性值,然后您可以将它们转换为文本节点.