Tôi đang cố gắng tạo XSL-FO sạch từ một trang VisualForce. Nhưng xml sắp ra khỏi trang VisualForce không hợp lệ do các thẻ span trống đang được tạo bởi đỉnh lồng nhau: thẻ outputPanel (outer rendered = true, inner rendered = false). Đây là một trang tập trung để minh họa các vấn đề:Làm thế nào để đạt được kết xuất có điều kiện lồng nhau mà không có thẻ span trống từ đỉnh: outputPanel?
<apex:page contentType="text/xml" cache="false" showHeader="false" sidebar="false">
<root>
There is no reason for a nested apex:outputpanel to generate a span tag like this:
<apex:outputPanel layout="none" rendered="true">
<apex:outputPanel layout="none" rendered="false" />
</apex:outputPanel>
This breaks strict xml documents like XSL-FO.
</root>
</apex:page>
trang đó cho đầu ra xml này:
<root>
There is no reason for a nested apex:outputpanel to generate a span tag like this:
<span id="j_id0:j_id3" style="display: none;"></span>
This breaks strict xml documents like XSL-FO.
</root>
Thực ra, tôi đã tìm thấy một lý do mơ hồ trong docs:
đỉnh : outputPanel layout attribute - Kiểu bố trí cho bảng điều khiển. Các giá trị có thể bao gồm "block" (tạo thẻ div HTML), "inline" (tạo thẻ span HTML) và "none" (không tạo thẻ HTML). Nếu không được chỉ định, giá trị này mặc định là "không". Tuy nhiên, nếu bố cục được đặt thành "không", cho mỗi phần tử con với thuộc tính kết xuất được đặt thành "false", outputPanel tạo thẻ span, với ID của mỗi trẻ và thuộc tính kiểu được đặt thành "display: không ai". Do đó, mặc dù nội dung không hiển thị, JavaScript vẫn có thể truy cập các phần tử thông qua ID DOM.
Âm thanh hữu ích nếu loại nội dung của tôi là html hoặc javascript, nhưng nó phá vỡ xml nghiêm ngặt của tôi. Vì vậy, câu hỏi là: làm thế nào tôi có thể đạt được dựng hình có điều kiện lồng nhau trong khi tránh các thẻ span?
nghĩ tôi đã tìm ra một này. Chuyển đổi cả hai hoặc chỉ bên ngoài thành một đỉnh: biến như sau: ' apex: variable> ' –
twamley
Tôi cố định bạn có thể tạo thành phần trực quan tùy chỉnh với layout =" none "và không có logic đặc biệt nào không có quirk này, phải không? –