gpt4 book ai didi

xml - 保留属性空白

转载 作者:数据小太阳 更新时间:2023-10-29 01:42:23 25 4
gpt4 key购买 nike

免责声明:以下是对 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 的错误更为......异常(exception)。一些标签看起来像这样:

<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 将换行符转义为 来恢复换行符。字符引用,只要您还没有在不允许使用字符引用的地方换行,例如在标签体内。 Charrefs 应该作为控制字符保留到属性值,然后您可以将它们变成文本节点。

关于xml - 保留属性空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/260436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com