2013-06-14 29 views
7

Tôi có XML sauxmlstarlet đầu ra sel dòng mới giữa các giá trị

<process id="test"> 

</process> 
<process id="test2"> 

</process> 

tôi nhận được các giá trị chính xác từ các thuộc tính nhưng tôi muốn có chúng tách ra trên bởi một dòng mới để chế biến tiếp.

Khi sử dụng lệnh

xmlstarlet sel -t -v "count(process/@id" "example.xml)" 

tôi có thể nhìn thấy hai được tách ra bởi vì nó trở lại 2

Lệnh sử dụng để lấy các thuộc tính như sau

xmlstarlet sel -t -v "process/@id" "example.xml" 

Câu hỏi :

Đầu ra có thể được trả lại bằng một dòng mới cho mỗi thuộc tính không? Nếu không, nó có thể được thực hiện với xmllint?

Trả lời

10

tôi đang tìm kiếm tại đây trong 2 ngày và tôi tìm thấy trang sau:

http://www.geekfarm.org/wu/muse/XmlStarlet.html

này làm sáng tỏ nhiều điều để tôi

Tôi đã sử dụng lệnh sau đây để đạt được các ngắt dòng

xmlstarlet sel -t -m "process" -n -v "@id" "example.xml" 
+1

Để nhận dòng mới bằng cờ '-n', tùy chọn' -m' là bắt buộc. I E. khi bạn sử dụng 'sel -t -c" expression "-n some.xml', thay vào đó sử dụng' sel -t -m "expression" -c "." -n some.xml'. – phobic

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