LXML ต้องการที่ซับซ้อนและมีประสิทธิภาพฟรีและโมดูลหลามที่ไม่ซ้ำกันที่ผูก libxml2 และห้องสมุด libxslt ช่วยให้นักพัฒนาหลามที่จะทำงานกับทั้ง XML และ HTML ภายในแฟ้มประมวลผลหลาม code.An XML ของพวกเขา librarylxml เป็น XML (Extensible Markup Language ) การประมวลผลห้องสมุดเขียนในการเขียนโปรแกรมภาษา Python ได้รับการออกแบบมาโดยเฉพาะเพื่อปฏิบัติตามข้อกำหนด ElementTree API มากที่สุดเท่าที่เป็นไปได้
มันสามารถขยาย ElementTree API เพื่อแสดงฟังก์ชั่นที่เฉพาะเจาะจงของ libxslt และห้องสมุด libxml2 เช่นผ่อนคลาย NG (Next-Generation), XPath, XML Schema, c14n, XSLT (Extensible Stylesheet Language), etc.Use LXML จะเรียกรหัสหลามจาก stylesheetsDevelopers XSLT จะสามารถที่จะใช้โปรแกรม LXML เพื่อเรียกรหัสหลามจาก stylesheets XSLT และการแสดงออก XPath ผ่านฟังก์ชั่นการขยาย หลากหลายของบทเรียนที่มีอยู่ในโครงการ & rsquo; S หน้าแรก (จะเห็นลิงค์ที่ท้ายบทความ)
ซอฟต์แวร์ที่เป็นโอเพนซอร์สจากการออกแบบและรวมความสมบูรณ์คุณลักษณะและความเร็วของห้องสมุดดังกล่าวข้างต้นด้วยความเรียบง่ายของงูหลาม & rsquo; S API (Application Programming Interface) .Getting เริ่มต้นด้วย lxmlIt ค่อนข้างง่ายในการติดตั้ง LXML ในการกระจาย GNU / Linux ใช้ แหล่งเก็บกระจายบน Softoware และโครงการ & rsquo; เว็บไซต์อย่างเป็นทางการ เพียงดาวน์โหลดแพคเกจที่มาบันทึกไว้ในไดเรกทอรีบ้านของคุณ, แกะมันเปิดแอพพลิเคเทอร์และนำทางไปยังสถานที่ตั้งของไฟล์ที่เก็บสกัด (เช่น cd /home/softoware/lxml-3.4.1)
Run & lsquo; & rsquo ทำให้; คำสั่งที่จะรวบรวมโปรแกรมซึ่งจะใช้เวลาประมาณ 1-2 นาทีบนคอมพิวเตอร์ที่ทันสมัย หลังจากที่ประสบความสำเร็จในการรวบรวมรัน & lsquo; ให้ติดตั้ง & rsquo; คำสั่งเป็นรากหรือ & lsquo; sudo ให้ติดตั้ง & rsquo; คำสั่งเป็นผู้ใช้สิทธิพิเศษในการติดตั้งระบบ LXML wide.Supports GNU / Linux และ Microsoft Windows ปฏิบัติการซอฟต์แวร์ systemsThe ได้รับการสนับสนุนอย่างเป็นทางการเมื่อ GNU / Linux และระบบปฏิบัติการ Microsoft Windows มันได้รับการทดสอบประสบความสำเร็จใน 32 บิตและ 64 บิตคอมพิวเตอร์
มีอะไรใหม่ ในข่าวประชาสัมพันธ์ฉบับนี้.
- คุณสมบัติ เพิ่ม:
- กำเนิด htmlfile HTML ใหม่จะมาพร้อมกับที่เพิ่มขึ้นเป็นอันดับ XMLFile API แพทช์โดย Burak Arslan.
- บักคงที่:
- lxml.sax.ElementTreeContentHandler ไม่ initialise superclass ของมัน.
มีอะไรใหม่ ในรุ่น 3.3.1:
- บักคงที่:
- LP # 1014290: เอกสาร HTML แจงกับ parser.feed () ล้มเหลวที่จะหาองค์ประกอบในช่วงย้ำแท็ก .
- LP # 1273709: อาคาร PyPy ล้มเหลวเนื่องจากการสนับสนุนที่หายไปสำหรับ PyUnicode_Compare () และ PyByteArray _ * () ใน PyPy ของ C-API .
- LP # 1274413: รวบรวมใน MSVC ล้มเหลวเนื่องจากขาดหายไป & quot; stdint.h & quot; ไฟล์ส่วนหัวมาตรฐาน.
- LP # 1274118: iterparse () ล้มเหลวที่จะแยก BOM นำไฟล์ .
มีอะไรใหม่ ในรุ่น 3.0 Alpha ที่ 2:
- เพิ่มคุณสมบัติ:
- .iter () วิธีการขององค์ประกอบในขณะนี้ยอมรับข้อโต้แย้งแท็กเช่น & quot; {*} ชื่อ & quot; เพื่อค้นหาองค์ประกอบที่มีชื่อในท้องถิ่นได้รับใน namespace ใด ๆ ด้วยการเพิ่มนี้รวมกันทั้งหมดของสัญลักษณ์ตอนนี้ทำงานตามที่คาด: & quot; {ns} ชื่อ & quot ;, & quot; {} ชื่อ & quot ;, & quot; ชื่อ {*} & quot ;, & quot; {ns} * & quot ;, & quot; {} * & quot; และ & quot;} {* * * * * & quot ;. โปรดทราบว่า & quot; ชื่อ & quot; เทียบเท่ากับ & quot; {} ชื่อ & quot ;, แต่ & quot; * & quot; เป็น & quot;} {* * * * * & quot ;. การเปลี่ยนแปลงเช่นเดียวกับ .getiterator () .itersiblings () .iterancestors () .iterdescendants () .iterchildren () และ .itertext () วิธี; strip_attributes () strip_elements () และ strip_tags () ฟังก์ชั่น เช่นเดียวกับ iterparse () ชั้น.
- C14N ช่วยให้ระบุคำนำหน้ารวมจะได้รับการเลื่อนตำแหน่งให้เป็นระดับบนสุดในช่วงอนุกรมพิเศษ.
- บักคงที่:
- ผ่านสายอักขระ Unicode ยาวเป็นฟีด () อินเตอร์เฟซที่แยกวิเคราะห์ความล้มเหลวในการอ่านสตริงทั้งหมด.
มีอะไรใหม่ ในรุ่น 2.3.5:
- การแข่งขันเมื่อควบรวมโหนดข้อความใน element.remove ( ).
- การแข่งขันใน parser แซ็กโซโฟน / เป้าหมายเมื่อรายงานประเภทเอกสารที่ว่างเปล่า.
มีอะไรใหม่ ในรุ่น 2.3.4:
- การแข่งขันเมื่อมีการสร้าง nsmap (ทรัพย์สินธาตุ) ด้วย URIs namespace ที่ว่างเปล่า.
- การแข่งขันเนื่องจากสภาพการแข่งขันเมื่อข้อผิดพลาด (หรือข้อความที่ผู้ใช้) เกิดขึ้นในระหว่างการประมวลผล XSLT เกลียว.
- รวบรวมสไตล์ XSLT สามารถละเว้นข้อผิดพลาดรวบรวม.
มีอะไรใหม่ ในรุ่น 2.3.2:
- เพิ่มคุณสมบัติ:
- lxml.objectify.deannotate () มี cleanup_namespaces ตัวเลือกแบบบูลใหม่ที่จะลบประกาศ namespace แลเห็น (และโดยทั่วไปทำความสะอาดประกาศ namespace) หลังจากที่ถอดคำอธิบายประกอบชนิด.
- lxml.objectify ได้รับของตัวเองอิลิเมนต์ () ฟังก์ชันเป็นสำเนาของ etree.SubElement เพื่อหลีกเลี่ยงการนำเข้าซ้ำซ้อนอย่างอื่นของ lxml.etree ในด้านผู้ใช้.
- บักคงที่:
- คงที่ & quot; ทายาท & quot; ข้อผิดพลาดใน cssselect เป็นครั้งที่สอง (หลังจากการแก้ไขครั้งแรกใน LXML 2.3.1) การเปลี่ยนแปลงที่ก่อนหน้านี้ส่งผลให้ปัญหาประสิทธิภาพที่ถดถอยอย่างจริงจังสำหรับการประเมินผลตาม XPath ในการแสดงออกแปล โปรดทราบว่านี้แบ่งการใช้งานของบางส่วนของการสร้างการแสดงออก XPath เป็นเส้นทางที่ตั้ง XSLT ที่ทำงานก่อนหน้านี้ใน 2.3.1.
- การแยกหนี้เตอร์บางอย่างใน cssselect ช่องว่างหลังจาก combinators & quot; & gt; & quot ;, & quot; + & quot; และ & quot; ~ & quot; คือตอนนี้ไม่สนใจได้อย่างถูกต้อง ก่อนหน้านี้จะได้รับการแยกวิเคราะห์เป็นลูกหลาน Combinator ตัวอย่างเช่น & quot; div & gt; .foo & quot; ถูกแยกวิเคราะห์เดียวกับ & quot; div & gt; * .foo & quot; แทนที่จะ & quot; div & gt; .foo & quot;.
มีอะไรใหม่ ในรุ่น 2.3.1:
- เพิ่มคุณสมบัติ:
- ตัวเลือกใหม่ใน kill_tags lxml.html.clean ที่จะลบแท็กที่เฉพาะเจาะจงและเนื้อหาของพวกเขา (เช่นทรีย่อยทั้งหมดของพวกเขา).
- pi.get () และ pi.attrib คำแนะนำในการประมวลผลที่จะแยกคุณลักษณะหลอกจากเนื้อหาข้อความของคำสั่งการประมวลผล.
- lxml.get_include () กลับรายการรวมถึงเส้นทางที่สามารถนำมาใช้ในการรวบรวมรหัส C ภายนอกกับ lxml.etree นี้เป็นสิ่งจำเป็นโดยเฉพาะสำหรับการเชื่อมโยงแบบคง LXML สร้างเมื่อรหัสความต้องการที่จะรวบรวมกับส่วนหัวเดียวกันแน่นอนรุ่นของแฟ้มเป็น LXML ตัวเอง.
- Resolver.resolve_file () ใช้เวลา close_file ตัวเลือกเพิ่มเติมที่กำหนดค่าถ้าแฟ้ม (เหมือน) วัตถุจะถูกปิดหลังจากที่ได้อ่านหรือไม่ แฟ้มจะถูกปิดเป็นผู้ใช้ที่ไม่ได้คาดว่าจะทำให้การอ้างอิงถึงมัน.
- บักคงที่:
- การทำความสะอาด HTML ไม่ได้ลบ 'ข้อมูล'. เชื่อมโยง
- การรวมตัวแยกวิเคราะห์ html5lib ตอนนี้ใช้ 'อย่างเป็นทางการ' การดำเนินงานใน html5lib ตัวเองซึ่งจะทำให้มันทำงานกับรุ่นใหม่ของห้องสมุด.
- ใน lxml.sax, endElementNS () ไม่ถูกต้องอาจปฏิเสธชื่อแท็กธรรมดาเมื่อเหตุการณ์เริ่มต้นที่สอดคล้องสรุปชื่อแท็กธรรมดาเหมือนกันที่จะอยู่ใน namespace เริ่มต้น.
- เมื่อวัตถุเช่นเปิดไฟล์จะผ่านเข้าสู่แจง () หรือ iterparse () parser จะไม่ปิดมันหลังการใช้งาน ซึ่งแปลงการเปลี่ยนแปลงใน LXML 2.3 ที่ไฟล์ทั้งหมดจะถูกปิด มันเป็นความรับผิดชอบของผู้ใช้ที่จะต้องปิดแฟ้ม (เหมือน) วัตถุนอกจากนี้ในกรณีที่เกิดข้อผิดพลาด.
- ข้อผิดพลาดในการยืนยัน lxml.html.cleaner เมื่อทิ้งองค์ประกอบระดับบนสุด.
- ใน lxml.cssselect ใช้ XPath '// B' (ย่อมาจาก '/ ลูกหลานหรือตัวเอง :: โหนด () / B') แทน '/ ลูกหลาน :: B' สำหรับ CSS เลือกลูกหลาน ('B') นี้จะทำให้กรณีขอบไม่กี่เพื่อให้สอดคล้องกับพฤติกรรมการเลือกใน WebKit และ Firefox และทำให้มากขึ้นการแสดงออก CSS เส้นทางสถานที่ตั้งที่ถูกต้อง (สำหรับใช้ใน xsl: แม่แบบการแข่งขัน).
- ใน lxml.html, แท็กที่ไม่ถูกเลือกไม่แสดงขึ้นมาในรูปแบบเก็บค่า.
- การเพิ่ม / ลบค่าจาก / ไปยังเขตข้อมูลฟอร์มเลือกหลายอย่างถูกต้องเลือกพวกเขาและพวกเขา unselects.
- การเปลี่ยนแปลงอื่น ๆ :
- คงสร้างสามารถระบุไดเรกทอรีดาวน์โหลดด้วยตัวเลือก --download-ผบ.
มีอะไรใหม่ ในรุ่น 2.3:
- เพิ่มคุณสมบัติ:
- เมื่อมองหาเด็ก lxml.objectify ใช้เวลา '{} แท็ก' เป็นความหมาย namespace ที่ว่างเปล่าเมื่อเทียบกับ namespace แม่.
- บักคงที่:
- เมื่ออ่านเสร็จจากวัตถุไฟล์เหมือน parser ทันทีเรียก .close ของวิธี ().
- เมื่อแยกเสร็จแล้ว iterparse () ทันทีปิดแฟ้มใส่.
- การทำงานรอบสำหรับข้อผิดพลาด libxml2 ที่สามารถออกจากตัวแยกวิเคราะห์ HTML ในสถานะที่ไม่ทำงานหลังจากแยก severly เอกสารหัก (คงที่ใน libxml2 2.7.8).
- แท็กยี่ห้อในรหัสการทำความสะอาดอย่างถูกต้อง HTML ชื่อกระโจม.
- การเปลี่ยนแปลงอื่น ๆ :
- บางฟังก์ชั่นของประชาชนใน Cython ระดับ C-API มีชนิดผลตอบแทนที่ชัดเจนมากขึ้น.
มีอะไรใหม่ ในรุ่น 2.2.8 / 2.3 Beta 1:
- การแข่งขันในรุ่น libxml2 ใหม่เมื่อ ย้ายองค์ประกอบระหว่างเอกสารที่มีคุณลักษณะในการแทนที่โหนด XInclude.
- XMLID () ฟังก์ชันที่ขาดหายไปแยกวิเคราะห์ตัวเลือกและพารามิเตอร์ base_url.
- ค้นหาแท็ตัวแทนใน iterparse () ถูกทำลายใน Py3.
- lxml.html.open_in_browser () ไม่ได้ทำงานในหลาม 3 เนื่องจากการใช้ os.tempnam ตอนนี้มันต้องใช้ตัวเลือก 'การเข้ารหัส' พารามิเตอร์.
ต้องการ
- หลาม
ความคิดเห็นที่ไม่พบ