cdata-section-elements - 对于不同XPath中的相同元素不能忽略

时间:2015-04-15 10:33:48

标签: xml xslt saxon

我有一个特定的模式,其中在目标模式中多次定义具有不同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中。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

序列化程序中的cdata-section-elements参数不能为您提供此级别的控制。

你的要求很难实现,因此我觉得Mads Hansen问你为什么真的需要这个是很合理的。 CDATA经常被不恰当地使用。

实现此要求的一种方法可能是在结果树中为要成为CDATA的元素使用不同的元素名称,然后对序列化程序输出进行后处理以更改元素名称。

另一种方法是使用字符映射生成CDATA标记(输出特殊字符,例如来自Unicode用户定义的字符范围,以指示CDATA部分的开始和结束,然后将这些字符映射到CDATA开始)和结束标签)。