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

cdata-section-elements - for same elements in different XPath cannot be ignored

我有一个特定的架构,其中在目标架构中多次定义了具有相同名称但 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" 进行转换。

虽然我只希望 Record1Name 元素的输出在 CDATA 而不是 Record/Name 的 CDATA 中。截至目前,所有名称元素的输出都在 CDATA 中。有人可以帮忙吗?

序列化程序中的 cdata-section-elements 参数不提供这种级别的控制。

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

实现要求的一种方法可能是在结果树中为要成为 CDATA 的元素使用不同的元素名称,然后 post- 处理序列化程序输出以将元素名称改回原样.

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