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



我有一个特定的模式,其中具有不同 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-section-elements 参数不会提供此级别的控制。

你的要求很难实现,因此我认为麦德斯·汉森问你为什么真的需要这个是很合理的。CDATA 经常被不恰当地使用。

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

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

最新更新