我有输入:
<r>
<n>Russel</n>
<i>333</i>
</r>
这是我想要的最终输出:
<section data-a="{
name:"Russel",
id:333
}"></section>
这不是我想要的输出,例如:
<section data-a="{
name:'Russel',
id:333
}"></section>
因为当名称本身有引号时,JSON反序列化函数会失败。例如,如果名称为Rus"sel
,则这是我需要的输出:
<section data-a="{
name:"Rus/"sel",
id:333
}"></section>
如果名称为'
,则为输出:
<section data-a="{
name:"'",
id:333
}"></section>
如果名称为/
,则为输出:
<section data-a="{
name:"//",
id:333
}"></section>
如果名称为&
,则为输出:
<section data-a="{
name:"&",
id:333
}"></section>
如果名称为&asd
,则为输出:
<section data-a="{
name:"&asd",
id:333
}"></section>
如果名称为&
,则为输出:
<section data-a="{
name:"&amp;",
id:333
}"></section>
如果名称为R/u/"/s
,则为输出:
<section data-a="{
name:"R//u///"//s",
id:333
}"></section>
如果名称为R&//"
,则为输出:
<section data-a="{
name:"R&/////"",
id:333
}"></section>
(我想说的是,通常我没有名字和身份证,有时我会有6或7个属性)
(另外,如果可能的话,我希望不要将我的xsl:output更改为文本,因为此输出是整个HTML页面的一部分,因此我希望将输出保持为HTML)
先谢谢大家。
Erm yea XSLT 1.0。
答案 0 :(得分:1)
我认为您在“/”的位置使用了“/”。
几乎所有描述的内容都将由XSLT序列化程序自动完成。唯一的例外是您需要引入JSON转义,例如将"
转义为\"
。与所有字符串操作一样,这在XSLT 1.0中比在2.0中大10倍,但幸运的是代码已经编写:请查看www.exslt.org上的str:replace
以获取可添加到您的可重用模板用于执行字符串替换的代码。