Tôi đang sử dụng xsl:stylesheet
Hướng dẫn xử lý trong XML của tôi. Có cách nào để chọn PI này bằng XPath không? Nếu thế thì sao?Biểu thức XPath để chọn lệnh Xử lý là gì?
Trả lời
Sử dụng processing-instruction()
kiểm tra nút.
Nói chung, có thể chọn hướng dẫn xử lý bằng cách sử dụng kiểm tra nút processing-instruction()
.
Cụ thể hơn, người ta có thể bao gồm làm đối số tên (đích) của nút PI mong muốn.
Sử dụng:
/processing-instruction('xml-stylesheet')
này sẽ chọn bất kỳ hướng dẫn xử lý với tên xsl-stylesheet
được định nghĩa ở cấp toàn cầu (là anh chị em ruột của các yếu tố đầu).
Lưu ý rằng xsl:stylesheet
là mục tiêu PI không hợp lệ cho PI. Dấu hai chấm ':'
được sử dụng để phân tách tiền tố không gian tên từ tên địa phương - tuy nhiên hướng dẫn xử lý đích không thể thuộc về không gian tên. Theo W3c XPath Specification:
"Một hướng dẫn xử lý có một mở rộng tên tuổi: phần địa phương là mục tiêu hướng dẫn xử lý của; namespace URI là null."
Cũng theo tài liệu của W3C: "Associating Style Sheets with XML documents 1.0", mục tiêu của PI liên kết một stylesheet để một tài liệu XML phải là:. "xml-stylesheet"
- không "xsl:stylesheet"
hoặc "xsl-stylesheet"
Đây là một ví dụ hoàn chỉnh:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select="/processing-instruction('xml-stylesheet')"/>
</xsl:template>
</xsl:stylesheet>
Khi chuyển đổi này được áp dụng đối với các tài liệu XML sau:
<?xml-stylesheet type="text/xsl" href="test"?>
<Books>
<Book name="MyBook" />
</Books>
biểu thức XPath được đánh giá và nút PI chọn là sản lượng:
<?xml-stylesheet type="text/xsl" href="test"?>
Tôi thấy bạn vẫn theo các thủ thuật cũ của bạn ... Xóa và đăng lại câu trả lời để hủy bỏ phiếu bầu là lạm dụng trực tiếp: cách mọi người quyết định xếp hạng câu trả lời của bạn là quyết định của họ chứ không phải của bạn. Vui lòng không làm điều này một lần nữa. – Shog9
Có '/ xử lý-hướng dẫn ('xml-stylesheet')' chọn những thứ có tên 'xsl-stylesheet'? Đó sẽ là ma thuật! Lưu ý 'xml' so với' xsl'. –
@MicheldeRuiter, Vâng, đúng vậy. Đây là chính thức được định nghĩa ở đây (đoạn thứ ba từ phía dưới): http://www.w3.org/TR/xpath/#node-tests –
Một hat xử lý-hướng dẫn hai phần nhắm mục tiêu và dữ liệu với cú pháp:
<?target data?>
Nếu bạn sử dụng:
<xsl:value-of select="/processing-instruction('xml-stylesheet')" />
Nó sẽ chỉ trả lại một phần dữ liệu, trong ví dụ của Dimitre Novatchev, nó sẽ trả về:
type="text/xsl" href="test"
Vì vậy, chuỗi giá trị của một hướng dẫn xử lý là phần dữ liệu. biểu thức chọn của <xsl:value-of
được đánh giá và đối tượng kết quả được chuyển đổi thành một chuỗi, giống như một cuộc gọi ngầm đến hàm string()
.
- 1. Confuse Biểu thức Xpath của tôi nên là gì?
- 2. Biểu thức lùn chưa xử lý
- 3. Biểu thức XPath phân tích
- 4. Trình xử lý là gì
- 5. Làm thế nào để chọn tất cả các nút lá sử dụng biểu thức XPath?
- 6. "Xử lý được ghim" là gì?
- 7. xác nhận biểu thức xpath trong Java
- 8. Cách tốt nhất để xử lý phiên bản bằng giao thức JSON là gì?
- 9. Lỗi đánh giá biểu thức XPath
- 10. Sử dụng biểu thức lambda cho xử lý sự kiện
- 11. gửi lệnh để xử lý bằng/proc
- 12. Các xử lý sự kiện để chọn
- 13. Cách tốt nhất để xử lý các biểu mẫu lặp trong MVC là gì?
- 14. Chính xác thì "xử lý" là gì?
- 15. giao thức xử lý đa xử lý python
- 16. Phỏng vấn: Biểu thức Lambda là gì?
- 17. Biểu thức sửa đổi Git là gì?
- 18. Biểu thức bằng Python là gì?
- 19. R: Biểu thức XPath trả về các liên kết bên ngoài phần tử đã chọn
- 20. Tại sao biểu thức lựa chọn vị trí xpath trả về nhiều nút?
- 21. XPath để chọn nhiều thẻ
- 22. Cách xử lý lỗi đúng trong PowerShell là gì?
- 23. Microsoft Azure xử lý Trạng thái Phiên là gì?
- 24. Ngoại lệ lạ Xử lý lệnh giả
- 25. Trình xử lý sự kiện tải biểu mẫu trong Java là gì?
- 26. Có gói nào để xử lý các tùy chọn dòng lệnh trong R không?
- 27. XPath chính xác để chọn thuộc tính chứa "foo" là gì?
- 28. Xử lý ngoại lệ Netty - Trình xử lý ném ngoại lệ, sau đó là gì?
- 29. Tùy chọn để xử lý biểu mẫu dữ liệu thay đổi thường xuyên
- 30. Sự khác biệt của câu lệnh và biểu thức trong Ruby là gì?
Kirill, câu trả lời này quá chung chung - bạn không cung cấp biểu thức XPath cụ thể chọn chính xác PI mong muốn. –