คำถามติดแท็ก xml

รูปแบบข้อความที่เรียบง่ายและยืดหยุ่นมากซึ่งย่อมาจาก eXtensible Markup Language

1
Vim: การสร้างข้อความ XML“ สวย”
มีวิธีง่ายๆในviการทำให้ข้อความ XML ของคุณ "สวย" หรือไม่? ตัวอย่างเช่น: ฉันต้องการสิ่งนี้.. <person> <name>Nick</name> <age>26</age> <gender>male</gender> <occupation>doctor</occupation> </person> เป็นแบบนี้ ... <person> <name>Nick</name> <age>26</age> <gender>male</gender> <occupation>doctor</occupation> </person>

2
วิธีการแทรกตัวแปรภายในสตริงที่มี“”?
ฉันต้องการสร้างสตริง xml โดยการแทรกตัวแปร: str1="Hello" str2="world" xml='<?xml version="1.0" encoding="iso-8859-1"?><tag1>$str1</tag1><tag2>$str2</tag2>' echo $xml ผลลัพธ์ที่ควรจะเป็น <?xml version="1.0" encoding="iso-8859-1"?><tag1>Hello</tag1><tag2>world</tag2> แต่สิ่งที่ฉันได้คือ: <?xml version="1.0" encoding="iso-8859-1"?><tag1>$str1</tag1><tag2>$str2</tag2> ฉันก็ลอง xml="<?xml version="1.0" encoding="iso-8859-1"?><tag1>$str1</tag1><tag2>$str2</tag2>" แต่จะลบเครื่องหมายคำพูดคู่ด้านในและให้ <?xml version=1.0 encoding=iso-8859-1?><tag1>hello</tag1><tag2>world</tag2>
25 bash  shell  variable  xml 

1
แทนที่ข้อความด้วย sed และเก็บส่วนหนึ่งของข้อความต้นฉบับ
ฉันพยายามแปลง <id>1</id> <Name>ENTERPRISE RESOURCE PLANNING</Name> ไปที่: <column name="id">1</column> <column name="Name">ENTERPRISE RESOURCE PLANNING</column> ฉันกำลังสมมติว่าเครื่องมือที่ดีที่สุดสำหรับงานจะเป็นsedอย่างไร แต่ฉันไม่สามารถหาวิธีที่จะเก็บส่วนของข้อความต้นฉบับในส่วนแทนที่ ถ้าฉันทำ: $ sed -i 's/<.*>.*<.*>/<column name="\\1">\\2<\/column>/g' filename.xml ผลลัพธ์คือ: <column name="\1">\2</column> <column name="\1">\2</column> หรือทำคล้ายกันจากภายในviมันจะออกผลลัพธ์: <column name=""></column> <column name=""></column> ฉันจะทำให้เป็นเช่นนั้นได้\1และ\2เปลี่ยนกลับไปเป็นค่าดั้งเดิมได้อย่างไร

7
วิธีใช้ patch และ diff เพื่อรวมสองไฟล์และแก้ไขข้อขัดแย้งโดยอัตโนมัติ
ฉันได้อ่านเกี่ยวกับ diff และ patch แต่ฉันไม่สามารถหาวิธีใช้สิ่งที่ฉันต้องการ ฉันเดาว่ามันค่อนข้างง่ายดังนั้นเพื่อแสดงปัญหาของฉันให้ใช้สองไฟล์นี้: a.xml <resources> <color name="same_in_b">#AAABBB</color> <color name="not_in_b">#AAAAAA</color> <color name="in_b_but_different_val">#AAAAAA</color> <color name="not_in_b_too">#AAAAAA</color> </resources> b.xml <resources> <color name="same_in_b">#AAABBB</color> <color name="in_b_but_different_val">#BBBBBB</color> <color name="not_in_a">#AAAAAA</color> </resources> ฉันต้องการมีเอาต์พุตซึ่งมีลักษณะเช่นนี้ (ลำดับไม่สำคัญ): <resources> <color name="same_in_b">#AAABBB</color> <color name="not_in_b">#AAAAAA</color> <color name="in_b_but_different_val">#BBBBBB</color> <color name="not_in_b_too">#AAAAAA</color> <color name="not_in_a">#AAAAAA</color> </resources> การผสานควรมีบรรทัดทั้งหมดตามกฎง่าย ๆ นี้: บรรทัดใด ๆ ที่อยู่ในไฟล์เดียวเท่านั้น หากบรรทัดมีแท็กชื่อเดียวกัน แต่มีค่าต่างกันให้นำค่าจากวินาที ฉันต้องการใช้งานนี้ในสคริปต์ทุบตีดังนั้นจึงไม่จำเป็นต้องทำโดยใช้ diff …

7
แยกวิเคราะห์ XML เพื่อรับค่าโหนดในสคริปต์ทุบตี?
ฉันต้องการทราบวิธีการรับค่าของโหนดด้วยพา ธ ต่อไปนี้: config/global/resources/default_setup/connection/host config/global/resources/default_setup/connection/username config/global/resources/default_setup/connection/password config/global/resources/default_setup/connection/dbname จาก XML ต่อไปนี้: <?xml version="1.0"?> <config> <global> <install> <date><![CDATA[Tue, 11 Dec 2012 12:31:25 +0000]]></date> </install> <crypt> <key><![CDATA[70e75d7969b900b696785f2f81ecb430]]></key> </crypt> <disable_local_modules>false</disable_local_modules> <resources> <db> <table_prefix><![CDATA[]]></table_prefix> </db> <default_setup> <connection> <host><![CDATA[localhost]]></host> <username><![CDATA[root]]></username> <password><![CDATA[pass123]]></password> <dbname><![CDATA[testdb]]></dbname> <initStatements><![CDATA[SET NAMES utf8]]></initStatements> <model><![CDATA[mysql4]]></model> <type><![CDATA[pdo_mysql]]></type> <pdoType><![CDATA[]]></pdoType> <active>1</active> </connection> </default_setup> </resources> <session_save><![CDATA[files]]></session_save> </global> <admin> <routers> …


2
จัดรูปแบบไฟล์ XML จำนวนมาก
ฉันจัดการไฟล์ XML จำนวนมากที่กระจัดกระจายไปทั่วโครงสร้างไดเรกทอรีที่ซ้อนกัน ฉันพยายามต่อไปนี้: $ find . -name "*.xml" -type f | xargs -- xmllint --format ปัญหาคือการสร้างผลลัพธ์ XML ที่จัดรูปแบบแล้วบนหน้าจอ แต่จะไม่เปลี่ยนไฟล์ ฉันจะเปลี่ยนคำสั่งนี้เพื่อให้เนื้อหาไฟล์จริงมีการเปลี่ยนแปลงได้อย่างไร?
11 find  xargs  xml 

2
การปรับเปลี่ยนบรรทัดคำสั่ง XML (สคริปต์เชลล์)
วิธีจัดการ XML จากบรรทัดคำสั่งในเชลล์สคริปต์ มีคำสั่งมากมายสำหรับการจัดการข้อมูลแบบตาราง, ตัวแปรสภาพแวดล้อมการแทนที่หรือแทนที่ส่วนข้อความด้วย regex แต่ฉันไม่พบอะไรเลยสำหรับ XML บิลด์สคริปต์ของฉันจำเป็นต้องแทรกแท็กที่มีเนื้อหาภายในแท็กหลักของเอกสาร xml และฉันพบว่ามันเป็น overkill ในการติดตั้ง java, perl หรือ python ในระบบปฏิบัติการสำหรับจุดประสงค์นั้น (สคริปต์ของฉันทำใน gitlab ด้วยอิมเมจ docker งานของฉันด้วยเครื่องมือที่มีใน maven: ภาพ 3.5-jdk-8 จะเป็นความฝัน) ฉันไม่ต้องการที่จะจัดการกับ XML ที่มี sed แม้ว่าในการสร้างสคริปต์ของฉันมันจะทำงานเพราะมันเป็นความชั่วร้าย ตัวอย่าง: ฉันมี xml ต่อไปนี้: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!-- a lot of other …

3
จะเปรียบเทียบไฟล์ xml สองไฟล์ที่มีข้อมูลเหมือนกันในบรรทัดที่ต่างกันได้อย่างไร
ฉันมีสองไฟล์มีข้อมูลเหมือนกัน แต่อยู่ในบรรทัดที่ต่างกัน ไฟล์ 1: <Identities> <Identity> <Id>048206031415072010Comcast.USR8JR</Id> <UID>ccp_test_79</UID> <DisplayName>JOSH CCP</DisplayName> <FirstName>JOSH</FirstName> <LastName>CCP</LastName> <Role>P</Role> <LoginStatus>C</LoginStatus> </Identity> <Identity> <Id>089612381523032011Comcast.USR1JR</Id> <UID>94701_account1</UID> <DisplayName>account1</DisplayName> <FirstName>account1</FirstName> <LastName>94701</LastName> <Role>S</Role> <LoginStatus>C</LoginStatus> </Identity> </Identities> ไฟล์ 2: <Identities> <Identity> <Id>089612381523032011Comcast.USR1JR</Id> <UID>94701_account1</UID> <DisplayName>account1</DisplayName> <FirstName>account1</FirstName> <LastName>94701</LastName> <Role>S</Role> <LoginStatus>C</LoginStatus> </Identity> <Identity> <Id>048206031415072010Comcast.USR8JR</Id> <UID>ccp_test_79</UID> <DisplayName>JOSH CCP</DisplayName> <FirstName>JOSH</FirstName> <LastName>CCP</LastName> <Role>P</Role> <LoginStatus>C</LoginStatus> </Identity> </Identities> ถ้าฉันใช้diff file1 …

2
การแยกวิเคราะห์ XML, JSON และรูปแบบไฟล์ข้อมูลที่ใหม่กว่าใน UNIX โดยใช้ยูทิลิตี้บรรทัดคำสั่ง
สภาพแวดล้อม Unix มีเครื่องมือที่ยอดเยี่ยมสำหรับการแยกวิเคราะห์ข้อความในรูปแบบต่าง ๆ อย่างไรก็ตามในช่วงปลายข้อมูลไม่ได้อยู่ในรูปแบบดั้งเดิม (ประวัติ) (CSV, TSV, ตามบันทึกหรืออื่น ๆ ตามตัวคั่น) ที่เคยเป็นมาก่อน ข้อมูลวันนี้มีการแลกเปลี่ยนในรูปแบบที่มีโครงสร้างเช่น XML / JSON ฉันรู้ว่ามีเครื่องมือที่ดีเช่น sed, awk และ Perl ซึ่งสามารถเคี้ยวข้อมูลได้เกือบทุกรูปแบบ อย่างไรก็ตามในการทำงานกับข้อมูลที่มีโครงสร้างเช่นนี้มักจะต้องเขียนโปรแกรมที่สมบูรณ์และให้เวลาเล็กน้อยในการดึงข้อมูลเราต้องนั่งลงและคิดตรรกะทั้งหมดของสิ่งที่ต้องการสืบค้นและวาง มันลงโปรแกรม บางครั้งมันก็ไม่เป็นไร - โดยพื้นฐานแล้วเนื่องจากข้อมูลที่ดึงมาจากไฟล์เหล่านั้นทำหน้าที่เป็นอินพุตสำหรับการทำงานต่อไป ก็เพราะเวลาที่ใช้ในการค้นหาโซลูชันที่เหมาะสมและรหัสขึ้น จำเป็นต้องใช้เครื่องมือบรรทัดคำสั่งที่มีสวิตช์เพียงพอที่จะค้นหาสืบค้นและถ่ายโอนข้อมูล ฉันกำลังมองหาเครื่องมือที่ใช้ XML / JSON หรือรูปแบบข้อมูลที่มีโครงสร้างอื่น ๆ แล้วทิ้งลงในรูปแบบอื่น ๆ เช่น csv เป็นต้นเพื่อให้สามารถใช้คำสั่งอื่นเพื่อดึงข้อมูลออกมาได้ มียูทิลิตีบรรทัดคำสั่งใดบ้างที่คุณรู้จักซึ่งเป็นงานประเภทนี้? มีสคริปต์ awk / Perl อยู่ในรายการนี้หรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.