免责声明:以下是对
XML的罪名.这就是为什么我试图用XSLT来改变它:)
我的XML目前看起来像这样:
<root> <object name="blarg" property1="shablarg" property2="werg".../> <object name="yetanotherobject" .../> </root>
是的,我把所有的文本数据都放在属性中.我希望XSLT能救我我想转向这样的事情:
<root> <object> <name>blarg</name> <property1>shablarg</name> ... </object> <object> ... </object> </root>
我实际上已经完成了所有这些工作,除了我对XML的罪恶更多…特别之外.一些标签看起来像这样:
<object description = "This is the first line This is the third line. That second line full of whitespace is meaningful"/>
我在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来转换换行符来恢复换行符. #10;字符引用,只要你还没有换行符,不允许使用charref,例如标签体内. Charref应该作为控制字符生存到属性值,然后可以将它们转换为文本节点.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。