2011-08-11 38 views
16

Cú pháp đúng để lấy tên nút gốc của nút hiện tại là gì? Tôi biết nó về cha mẹ AxisName nhưng cú pháp đúng là gì? ví dụ về xml sauCách lấy tên nút cha của nút hiện tại?

<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" location="file:/dev/null" iosp="lasp.tss.iosp.ValueGeneratorIOSP" start="0" increment="1"> 
    <attribute name="title" value="Vector time series"/> 
    <dimension name="time" length="100"/> 
    <variable name="time" shape="time" type="double"> 
     <attribute name="units" type="String" value="seconds since 1970-01-01T00:00"/> 
    </variable> 
    <group name="Vector" tsdsType="Structure" shape="time"> 
     <variable name="x" shape="time" type="double"/> 
     <variable name="y" shape="time" type="double"/> 
     <variable name="z" shape="time" type="double"/> 
    </group> 
</netcdf> 

cho biến phần tử Tôi nên lấy netcdf hoặc nhóm. Cảm ơn trước.

+1

Câu hỏi hay, +1. Xem câu trả lời của tôi cho biểu thức XPath ngắn nhất có thể đánh giá tên của phụ huynh của nút hiện tại. Cũng là một lời giải thích tại sao phụ huynh có thể không có tên. Cuối cùng, đây thực sự là một câu hỏi XPath và không phải là một câu hỏi XSLT. –

Trả lời

8

name(parent::*) nên làm điều đó. Chỉ có một phụ huynh thôi.

29

Sử dụng:

name(..) 

Các .. viết tắt là viết tắt của parent::node().

Lưu ý: Không phải mọi phụ huynh đều có tên. Ví dụ: nút tài liệu (/) là phần tử cha của phần tử trên cùng (/*) của tài liệu và không có tên.

+0

sử dụng để truy xuất tên cha mẹ trong trường hợp ổ đĩa của tôi vào lỗi Out Memory, thay vào đó hãy sử dụng tên (parent :: *) –

+0

@CarlosCocom, Điều này chỉ cho thấy việc triển khai XPath cụ thể mà bạn đang sử dụng là lỗi. Sẽ rất thú vị nếu bạn có thể cung cấp một tài liệu XML (tốt nhất là rất ngắn) và biểu thức XPath chính xác. –

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