เครื่องมือ Grep สำหรับ XML [ปิด]


22

ฉันกำลังมองหาเครื่องมือที่ดีในการดำเนินการคล้ายกับ grep บน XML - ตัวอย่างเช่นแยกคุณลักษณะบางอย่างเท่านั้น

Grep ตัวเองไม่สามารถจัดการได้ - เครื่องมือใด ๆ ที่เทียบเท่ากับ DFA สามารถจัดการแข่งขันที่ไม่ซ้ำแบบซ้ำได้และของฉันอาจซ้ำได้

ฉันได้ลองxgrepแล้ว แต่มันค่อนข้างไม่เสถียรและฉันต้องการเครื่องมือที่เสถียรและเชื่อถือได้

คำแนะนำใด ๆ

แก้ไข: ฉันชอบเครื่องมือโอเพนซอร์สที่ทำงานได้ดีภายใต้ Linux

คำตอบ:


21

XMLStarlet (วิกิพีเดีย) grepเป็นเครื่องมือบรรทัดคำสั่งที่มาใกล้เคียงกับ มันเป็นซอฟต์แวร์โอเพนซอร์ซ (ใบอนุญาต MIT) และทำงานได้ดีบน Linux และ Windows

เว็บไซต์ XMLStarletอธิบายดังต่อไปนี้

XMLStarlet เป็นชุดของอรรถประโยชน์บรรทัดคำสั่ง (เครื่องมือ) ซึ่งสามารถใช้ในการแปลงแบบสอบถามตรวจสอบและแก้ไขเอกสารและไฟล์ XML โดยใช้ชุดคำสั่งเชลล์แบบง่าย ๆ ในลักษณะเดียวกันกับไฟล์ข้อความธรรมดาโดยใช้ grep, sed, awk, diff, patch, join, etc คำสั่ง

แพคเกจ Debian / Ubuntu xmlstarletเป็นชื่อ แต่ระวัง:ขัดกับสิ่งที่ manpage กล่าวว่าไบนารีเป็นชื่อxmlstarletใน Debian / Ubuntu xmlและไม่ได้

นอกจากนี้ยังมี Windows ไบนารีบน SourceForge

สำหรับการแนะนำเล็ก ๆ น้อย ๆ ดีดูของไอบีเอ็มเริ่มต้นการทำงานกับ XMLStarlet


ลบเครื่องหมายทับต่อท้ายออกจากลิงก์แรก
Bkkbrad

ฉันไม่สามารถทำงานได้ ... ไม่เคยเทียบกับ xpath ใด ๆ ยกเว้น '/' (เอกสารทั้งหมด) ซึ่งไม่มีค่าเลย :(
Hendy Irawan

@HendyIrawan - คุณแน่ใจหรือว่าไม่ใช่วิธีที่คุณพยายามใช้ xpath? (เช่นเดียวกับ XML ของคุณมีเนมสเปซเริ่มต้นที่คุณไม่ได้มีบัญชีอยู่หรือ?)
Daniel Haley

ฉันพยายามโคลน แต่ดูเหมือนว่าที่เก็บขาด
Hola Soy Edu Feliz Navidad


5

เครื่องมือที่ทำงานภายใต้ลินุกซ์เป็นxml_grep มันเข้าใจ XML อย่างสมบูรณ์และไม่ใช่เครื่องมือทีละบรรทัด

xml_grepถูกรวมเป็นเครื่องมือแบบเอกเทศในแพ็คเกจXML :: Twig ฟังก์ชั่น grepping ค่อนข้างมีประสิทธิภาพเนื่องจากรองรับคุณสมบัติXPath

ตัวอย่างบรรทัดคำสั่ง (คลายการโพสต์ที่แก้ไขหลังกลางเดือนกุมภาพันธ์จากการถ่ายโอนข้อมูล triology ):

xml_grep -p --cond="row[@LastEditDate>'2010-02-14']"  posts.xml  > lateEditedPosts.xml

ติดตั้งง่าย ทั้ง

  • sudo cpan -i "XML::Twig"ตามที่อธิบายไว้ในตำราอาหาร xml_grep อ้างอิงด้านล่าง

หรือ


ข้อมูลมากกว่านี้:

การแนะนำที่ดีที่สุดที่ฉันพบสำหรับxml_grepคือตำราอาหาร xml_grepประมาณสองหน้า อื่น ๆ :


ฉันได้แก้ไขลิงก์ที่ใช้งานไม่ได้ แต่ลิงค์ Data Dump ของ triology นั้นใช้งานไม่ได้เช่นกัน ฉันจะเห็นสิ่งที่ฉันสามารถทำได้
Peter Mortensen


0

ฉันจะแนะนำไม่ให้ใช้เครื่องมือ grep เหมือนใน XML แต่ใช้ห้องสมุดเพื่อแยกวิเคราะห์ XML แทน
คุณต้องการมันเพื่ออะไรกันแน่? ภาษาโปรแกรมใด ๆ ? ฉันคิดว่า. NET parser XML ในตัวจะเหมาะกับงานได้อย่างง่ายดายหากคุณยินดีที่จะเขียนโปรแกรมสำหรับมัน

ปรับปรุง : สำหรับลินุกซ์ที่รู้จักกันดีห้องสมุด parser XML เป็นlibxml2

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.