我有一个特定的模式,其中在目标模式中多次定义具有不同Xpath的相同名称的元素。例如:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Root>
<Record> // First record
<Name>test</Name>
<id>id2</id>
<Rollno>Rollno3</Rollno>
</Record>
<Record1> // Second Record
<Name>Name6</Name>
<id>id7</id>
<Rollno>Rollno8</Rollno>
</Record>
</Root>
以上是正在使用的XML,Name是要考虑的因素。
因为我在XSL中使用cdata-section-elements="Name"
进行转换。
虽然我只希望Name
的{{1}}元素的输出在CDATA中而不是Record1
的输出。截至目前,对于所有名称元素,输出都在CDATA中。任何人都可以帮忙吗?
答案 0 :(得分:1)
序列化程序中的cdata-section-elements参数不能为您提供此级别的控制。
你的要求很难实现,因此我觉得Mads Hansen问你为什么真的需要这个是很合理的。 CDATA经常被不恰当地使用。
实现此要求的一种方法可能是在结果树中为要成为CDATA的元素使用不同的元素名称,然后对序列化程序输出进行后处理以更改元素名称。
另一种方法是使用字符映射生成CDATA标记(输出特殊字符,例如来自Unicode用户定义的字符范围,以指示CDATA部分的开始和结束,然后将这些字符映射到CDATA开始)和结束标签)。