我有一个特定的模式,其中具有不同 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"
进行转换。
虽然我只希望Record1
的Name
元素的输出在 CDATA 中,而不是Record/Name
的输出中。截至目前,对于所有名称元素,输出都来自 CDATA。谁能帮忙?
序列化程序中的 cdata-section-elements 参数不会提供此级别的控制。
你的要求很难实现,因此我认为麦德斯·汉森问你为什么真的需要这个是很合理的。CDATA 经常被不恰当地使用。
实现此要求的一种方法可能是在结果树中对要成为 CDATA 的元素使用不同的元素名称,然后对序列化程序输出进行后处理以将元素名称更改回来。
另一种方法是使用字符映射生成 CDATA 标记(输出特殊字符,例如从 Unicode 用户定义的字符范围,以指示 CDATA 部分的开始和结束,然后将这些字符映射到 CDATA 开始和结束标记)。