Tôi có một tài liệu XML mà tôi tải vào và cố gắng tìm kiếm bằng XPath. Nút gốc trong tệp này là <t:Transmission xmlns:t='urn:InboundShipment'>
và cuối tệp được đóng đúng với </t:Transmission>
.Phân tích cú pháp XML: Dấu hai chấm trong nguyên tố của tôi khiến XPath bỏ lỡ nó
Vấn đề của tôi là tôi không thể đi bộ cây mà không sử dụng trục con cháu. Nói cách khác, tôi có thể làm: SelectSingleNode("//TransactionHeader[SHIPPERSTATE='CA']")
và nhận lại một nút. Nhưng tôi không thể làm gì tương đương: SelectSingleNode("/Transmission/TransmissionBody/Transaction/TransactionHeader[SHIPPERSTATE='CA']")
Nếu tôi xóa t:
Tôi có thể thực hiện tìm kiếm XPath trên /Transmission
và nhận toàn bộ tệp. Với t:
trong đó tôi chỉ nhận được null. Hoặc nếu tôi thử SelectSingleNode("t:Transmission")
tôi gặp lỗi với tuyên bố XPath của mình.
Tôi thường không cần truy vấn phần tử gốc, vì vậy tôi có thể thực hiện chỉ bằng cách sử dụng trục con cháu cho tìm kiếm của tôi. Nhưng XML có vẻ hợp lệ với tôi và vì vậy tôi muốn biết cách giải quyết vấn đề này. Ngoài ra, tôi không muốn yêu cầu khách hàng xóa "t:" chỉ vì tôi không biết cách xử lý nó.
Tuyệt vời, cảm ơn James! Tài liệu tham khảo tuyệt vời, quá. –