xml – 保存属性空格

前端之家收集整理的这篇文章主要介绍了xml – 保存属性空格前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
免责声明:以下是对 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应该作为控制字符生存到属性值,然后可以将它们转换为文本节点.

猜你在找的XML相关文章