Sự cố này xuất hiện gần đây. Tôi đã sử dụng kiến cho eons và biết tôi có thể 'hack xung quanh' vấn đề này, nhưng nghĩ để hỏi: không ant cung cấp một giải pháp thanh lịch cho usecase này?Ant: Cách xml-thoát giá trị thuộc tính khi sao chép các tệp xml có "lọc"
Vấn đề
Khi tôi sử dụng kiến để sao chép các file xml và "cư giá trị" bằng cách sử dụng thuộc tính "lọc", làm thế nào tôi có thể làm cho nó tự động thoát ampersands (và xml khác 'ký tự đặc biệt')?
Context
Thay vì phải cài đặt/người thực hiện bằng tay chỉnh sửa tất cả các file cấu hình cụ thể ứng dụng máy chủ khác nhau, chúng tôi có họ chỉnh sửa một file 'build.properties' trong thư mục gốc ứng dụng của chúng tôi. bản Ant một phiên bản 'nguồn' được cấu hình sẵn của tập tin vào một thư mục 'mục tiêu' trong khi Populating giá trị từ các thuộc tính tập tin
1) Build.properties có giá trị này:
JDBC_PASSWORD=smith&wesson
2) "Nguồn "tập tin cấu hình có yếu tố này:
<local-tx-datasource>
...
<password>@[email protected]</password>
...
</local-tx-datasource>
3) bản sao Ant các file xml từ thư mục cấu hình 'nguồn' và populates 'JDBC_PASSWORD' (trong những khách sạn khác) với 'lọc' thuộc tính:
<copy todir="${appserver.home.dir}" filtering="yes">
<fileset dir="${appserver.conf.dir}">
<include name="**/*.xml"/>
</fileset>
</copy>
4) Vì thuộc tính có dấu và, tệp xml 'đích' kết quả không hợp lệ. (Các '&' nên '& amp;')
<local-tx-datasource>
...
<password>smith&wesson</password>
...
</local-tx-datasource>
mong muốn Kết quả
Thay vì 4, tôi sẽ như thế này:
<local-tx-datasource>
...
<password>smith&wesson</password>
...
</local-tx-datasource>
bổ sung
Tôi cần phải lo lắng về toàn bộ 'cast charac ters ', tức là nhỏ hơn, lớn hơn, v.v., cũng như dấu và.
Cảm ơn trước
Tôi cũng gặp vấn đề tương tự. Làm thế nào bạn giải quyết của bạn? Bạn đã viết bộ mã hóa tùy chỉnh chưa? Cảm ơn. –