2012-06-05 30 views
7

Tôi có một yêu cầu đơn giản trong đó tôi cần tìm nạp giá trị của thuộc tính xml:id tức là af1. Tôi đang sử dụng SAXParser và đây là số xpath:a/aff/@xml:id của tôi ngược lại tôi có thể lấy giá trị sử dụng số xpath:a/aff/@value.Cách lấy giá trị của thuộc tính có chứa dấu hai chấm trong tên thuộc tính bằng cách sử dụng xpath

Nhưng tôi không thể truy xuất giá trị, bạn có thể giúp tôi không?

<?xml version="1.0" encoding="UTF-8" ?> 
<a> 
    <aff xml:id="af1" value="a"> 
     <uAff> 
      Hello 
     </uAff> 
    </aff> 
    <aff xml:id="corr1"> 
     <uAff> 
      Hello1 
     </uAff> 
    </aff> 
</a> 

Xin cảm ơn trước.

Trả lời

11

Để có được giá trị của các thuộc tính bạn có thể sử dụng:

/a/aff/@*[name()='xml:id'] 
+0

Cảm ơn rất nhiều :-) Câu trả lời của bạn là SPOT ON :-) Bạn có thể cho biết cách lấy giá trị của thẻ có dấu hai chấm. Thay vì aff nếu nó là aff: a, làm thế nào chúng ta có thể phân tích nó? –

+0

nếu bạn có aff: một aff sau đó phải là một không gian tên, và đó là một vấn đề khác. có một cái nhìn ở đây: http://stackoverflow.com/questions/536441/xpath-namespace-driving-me-crazy – tibtof

+0

hoặc bạn có thể sử dụng local-name() thay vì name(), FWIW http://stackoverflow.com/a/11131700/32453 – rogerdpack

1

/a/aff/@ xml: id hoạt động tốt khi nhận các giá trị ...

Bạn đang cố gắng nhận cả hai giá trị?

Nếu bạn đang cố gắng để có được chỉ là giá trị đầu tiên bạn có thể sử dụng/A/aff [1]/@ xml: id

+0

Câu trả lời của bạn là chính xác nếu không có dấu hai chấm, nhưng khi có dấu hai chấm, nó không tìm nạp giá trị thuộc tính với/a/aff/@ xml: id xpath này. –

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