Đây là XPath hợp lệ trong Javascript:Chuyển đổi Javascript XPath trong truy vấn PHP hợp lệ() XPath | bình thường hóa JS XPath -> PHP
id("priceInfo")/div[@class="standardProdPricingGroup"]/span[1]
Và điều này trở thành hợp lệ PHP XPath để được sử dụng với DOMXPath-> query() là
//*[@id="priceInfo"]//div[@class="standardProdPricingGroup"]//span[1]
- Bạn có biết bất kỳ thư viện hoặc thành phần tùy chỉnh nào đã thực hiện chuyển đổi này không?
- bạn có biết tài liệu có sẵn liệt kê hai khác biệt cú pháp không?
Mối quan tâm chính của tôi là có thể có nhiều khác biệt và tôi đang tìm cách xác định những khác biệt này và tôi có vấn đề để xác định những điều này.
Câu hỏi có thể được đặt theo cách khác: Vì Javascript có thể có các định dạng XPath hợp lệ khác nhau, cách bình thường hóa chúng để làm việc với PHP.
Một trong các bản cập nhật cũng đề cập đến hàm id() là XPath hợp lệ nếu có DTD hợp lệ chứa định nghĩa này. Tôi không có quyền lực trên đầu vào DTD, và nếu có một cách để tìm một giải pháp mà làm việc mà không có bất kỳ DTD cụ thể nó sẽ là tuyệt vời.
Cập nhật:
Tôi muốn chuyển đổi định dạng đầu vào thứ hai với một thuật toán. Đầu vào của tôi là cái đầu tiên và không phải cái thứ hai. Không thể thay đổi điều này.
Như @Nison Maël đã chỉ ra, định dạng thứ 2 là Javascript XPath hợp lệ như được trình bày ở đây: http://jsbin.com/elatum/2/edit không may này chỉ thêm vào vấn đề của Javascript "XPath" phân mảnh.
@salathe chỉ ra rằng truy vấn Javascript XPath hợp lệ hoạt động tốt trong PHP nếu tài liệu đầu vào có DTD hợp lệ (@Dimitre Novatchev đã đề cập đến điều này trong nhận xét nhưng bỏ qua tầm quan trọng). Thật không may tôi không có quyền kiểm soát của DTD đầu vào, vì vậy bây giờ tôi phải điều tra một cách để khắc phục điều này, hoặc để tìm một giải pháp mà làm việc ngay cả khi không có DTD hợp lệ.
Đây là một câu hỏi hay! Nó không giống như có bất kỳ tài liệu nào ra khỏi đó (ít nhất là không thông qua một tìm kiếm google cursory). Tôi rất vui khi thấy câu trả lời cho câu hỏi này. – Matt
Biểu thức đầu tiên là biểu thức XPath hợp pháp. Tuy nhiên, để hàm Xpath 'id()' hoạt động, XML phải có một định nghĩa DTD và phần tử trong DTD phải có các thuộc tính có từ khóa 'ID'. –
@DimitreNovatchev: Và về bản dịch của '//' thành '/' thì sao? – choroba