2009-08-27 36 views
6

Có tài liệu nguồn xml sử dụng tiền tố không gian tên và vùng tên mặc định. Khi tôi chuyển đổi nó bằng cách sử dụng một tài liệu XSLT, tài liệu xml được dịch là không chính xác, có nghĩa là, dữ liệu phần tử từ tài liệu xml nguồn bị thiếu.Vấn đề với XSLT nơi tài liệu xml nguồn sử dụng không gian tên mặc định

Khi tôi xóa "không gian tên mặc định" khỏi tài liệu xml nguồn, phép biến đổi hoạt động như mong đợi.

Câu hỏi: có cách nào giải quyết vấn đề mà không cần chỉnh sửa không gian tên mặc định từ tài liệu xml nguồn không? Tức là, thêm giải pháp vào tài liệu XSLT.

XML Document:

<MyElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      xmlns="http://www.zolldata.com/UDX"> 

nơi không gian tên mặc định vấn đề là xmlns = "http://www.zolldata.com/UDX"

Trả lời

4

Xác định không gian tên mặc định cùng trong tài liệu XSLT nếu selectors bạn làm không sử dụng tiền tố, hoặc sử dụng tiền tố cho tất cả các bộ chọn trong XSLT, nhưng đừng quên gắn chúng vào không gian tên mặc định của tài liệu XML của bạn.

+1

Tôi sẽ thêm không gian tên mặc định, xmlns = "http://www.zolldata.com/UDX" vào tài liệu XSLT của tôi. Tôi sẽ ràng buộc như thế nào? những gì tôi đang ràng buộc? – Larry

+0

Tôi đã thử đề xuất đầu tiên của bạn và điều đó không hoạt động. Có vẻ như không gian tên mặc định PHẢI được loại bỏ khỏi XML để XSLT hoạt động (hoặc được đặt tiền tố đúng cách). Giống như Larry, tôi không biết ý bạn là gì ... "đừng quên gắn chúng vào không gian tên mặc định". Tôi giả sử điều này có nghĩa là thực sự tiền tố nó với "xmlns: z = ..." mà chỉ hoạt động nếu bạn sắp thay đổi phản ứng xml thay vì phải đối phó với một hệ thống hiện có hợp lệ sử dụng một không gian tên mặc định. – Justin

Các vấn đề liên quan