【发布时间】:2014-04-10 06:15:27
【问题描述】:
我的要求是这样的
输入:-
<request>
<attribute>
<attributeName>Name</attributeName>
<attributeValue>a & b</attributeValue>
</attribute>
<attribute>
<attributeName>Name1</attributeName>
<attributeValue>b</attributeValue>
</attribute>
</request>
输出:-
<request>
<attribute>
<attributeName>Name</attributeName>
<attributeValue>a & b</attributeValue>
</attribute>
<attribute>
<attributeName>Name1</attributeName>
<attributeValue>b</attributeValue>
</attribute>
</request>
转义字符可以出现在 n 个标签中,我需要在运行时全部替换,因为属性元素类型是无限的。 我怎样才能在 xslt 中达到同样的效果???
【问题讨论】:
-
所需的输出格式不正确。 XML 中不能有未转义的 & 字符。
-
对不起@mzjn,但我不同意你的观点。
<xsl:text disable-output-escaping="yes"><![CDATA[&]]></xsl:text> -
@NickG:当然,您可以使用 CDATA 部分转义字符。但是问题中给出的想要的输出有一个裸 & 符号,这使得它格式不正确。
-
@NickG 是的,这将“工作” - 除了输出不是 XML。
-
是的,你是 100% 正确的。 @user3384223 需要的输出不是格式良好的 XML。幸运的是,user3384223 不需要格式良好的 XML(从输出示例判断)。
标签: xml xslt xml-parsing escaping xml-serialization