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

XSLT เป็นภาษาแปลงสำหรับ XML ที่ออกแบบมาเพื่อแปลงเอกสารที่มีโครงสร้างเป็นรูปแบบอื่น ๆ (เช่น XML, HTML และข้อความธรรมดาหรือใน XSLT 3, JSON) คำถามควรใช้แท็ก xslt-1.0, xslt-2.0 หรือ xslt-3.0 อย่างใดอย่างหนึ่งตามความเหมาะสม


4
อะไรคือความแตกต่างระหว่าง 'call-template' และ 'apply-template' ใน XSL?
ฉันใหม่ใน XSLT ดังนั้นฉันจึงสับสนเล็กน้อยเกี่ยวกับสองแท็ก <xsl:apply-templates name="nodes"> และ <xsl:call-template select="nodes"> คุณสามารถระบุความแตกต่างระหว่างพวกเขาได้หรือไม่?


2
เหตุใดดัชนีใน XPath จึงเริ่มต้นด้วย 1 และไม่ใช่ 0
เพื่อนร่วมงานบางคนและฉันกำลังเปรียบเทียบภาษาในอดีตที่เราได้ตั้งโปรแกรมไว้และกำลังพูดถึงประสบการณ์ของเรากับVBScriptด้วยคุณสมบัติแปลก ๆเช่นดัชนีที่อิง 1 รายการแทนที่จะเป็นดัชนีที่อิง 0 เหมือนกับภาษาอื่น ๆ เกือบทั้งหมดมีเหตุผลว่ามันเป็นภาษาสำหรับผู้ใช้ (เช่น Excel VBA) แทนที่จะเป็นภาษาสำหรับนักพัฒนา จากนั้นก็มีคนพูดว่า " XPath มีดัชนี 1 ฐานด้วย " ซึ่งฉันไม่อยากจะเชื่อเลยจนกว่าจะพบบทความนี้ซึ่งมีหลายเหตุผลที่ให้เหตุผลว่าเป็นแนวทางที่อิง 0รวมถึงบางส่วนจาก Michael Kay เอง: "... การจัดทำดัชนีแบบศูนย์มีแนวโน้มที่จะทำให้สูตรดัชนีง่ายขึ้นเมื่อเข้าถึงอาร์เรย์หลายมิติด้วยนิพจน์การเข้าถึงอาร์เรย์แบบมิติเดียว" "เมื่อจัดการตารางหรือสมัครสมาชิกเป็นสตริงการกำหนดแอดเดรสแบบศูนย์มักจะสะดวกกว่ามาก" "... การกำหนดแอดเดรสฮาร์ดแวร์ไม่ใช่ประโยชน์เพียงอย่างเดียวของการกำหนดแอดเดรสแบบ 0 เท่านั้น ... แต่ยังช่วยให้การคำนวณง่ายขึ้น ... " แต่ Michael Kay ถูกยกมาเป็นข้อสรุป: ... ตรรกะแบบ 1 เป็นตัวเลือกที่เหมาะสมสำหรับ XPath และ XSLT ... เนื่องจากภาษาได้รับการออกแบบมาสำหรับผู้ใช้ไม่ใช่สำหรับโปรแกรมเมอร์และผู้ใช้ยังคงมีนิสัยล้าสมัยในการอ้างถึงบทแรกในหนังสือเป็น Chapter หนึ่ง... …
117 xslt  xpath  indexing 

30
XSLT คุ้มไหม [ปิด]
ตามที่กล่าวไว้ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา เมื่อไม่นานมานี้ฉันเริ่มโครงการที่ฉันออกแบบสคีมา HTML แบบ html เพื่อให้ผู้เขียนสามารถเขียนเนื้อหาของพวกเขา (เนื้อหาหลักสูตรการศึกษา) ในรูปแบบที่เรียบง่ายซึ่งจะถูกเปลี่ยนเป็น HTML ผ่าน XSLT ฉันเล่นไปรอบ ๆ (ต่อสู้) กับมันมาระยะหนึ่งและทำให้มันอยู่ในระดับพื้นฐาน แต่แล้วก็รู้สึกรำคาญมากเกินไปกับข้อ จำกัด ที่ฉันพบ (ซึ่งอาจเป็นข้อ จำกัด ของความรู้ของฉัน) และเมื่อฉันอ่านบล็อกแนะนำให้ทิ้ง XSLT และเขียนโปรแกรมแยกวิเคราะห์ XML ของคุณเองเป็นภาษาใดก็ได้ในภาษาที่คุณเลือกฉันกระตือรือร้นที่จะก้าวไปสู่สิ่งนั้นและมันก็ออกมายอดเยี่ยม ฉันยังคงทำงานอยู่จนถึงทุกวันนี้ ( ตอนนี้ฉันควรจะทำมันตอนนี้แทนที่จะเล่น SO ) และฉันได้เห็นสิ่งต่างๆมากขึ้นซึ่งทำให้ฉันคิดว่าการตัดสินใจทิ้ง XSLT คือ เป็นสิ่งที่ดี ฉันรู้ว่า XSLT มีสถานที่ในการที่จะเป็นมาตรฐานได้รับการยอมรับและว่าถ้าทุกคนเขียนล่ามของตัวเอง 90% ของพวกเขาจะจบลงในTheDailyWTF แต่เนื่องจากเป็นภาษารูปแบบการทำงานแทนที่จะเป็นรูปแบบขั้นตอนที่โปรแกรมเมอร์ส่วนใหญ่คุ้นเคยสำหรับคนที่เริ่มต้นโครงการเช่นของฉันคุณจะแนะนำให้พวกเขาไปตามเส้นทางที่ฉันทำหรือใช้ XSLT ?
112 xml  xslt 

1
กลยุทธ์การทดสอบวิธีการ Pandas read_xml ()
ปัจจุบันเครื่องมือ I / O ของแพนด้าไม่ได้คงไว้ซึ่งread_xml()วิธีการและคู่to_xml()กัน อย่างไรก็ตามการread_jsonพิสูจน์โครงสร้างที่เหมือนต้นไม้สามารถนำไปใช้สำหรับการนำเข้าดาต้าเฟรมและread_htmlสำหรับรูปแบบมาร์กอัป ถ้าทีมหมีแพนด้าไม่พิจารณาดังกล่าวเป็นread_xmlวิธีการสำหรับรุ่นหมีแพนด้าในอนาคตสิ่งที่พวกเขาจะดำเนินการติดตาม: แยกที่มีในตัวxml.etree.ElementTreeด้วยiterfind()หรือiterparse()ฟังก์ชั่นหรือโมดูลของบุคคลที่สามที่lxmlมี XPath ของ 1.0 และ 1.0 XSLT วิธี? ด้านล่างนี้คือการทดสอบของฉันสำหรับวิธีการสี่ประเภทบนอินพุต XML ที่เรียบง่ายแบนองค์ประกอบเป็นศูนย์กลาง ทั้งหมดถูกตั้งค่าสำหรับการแยกวิเคราะห์ทั่วไปสำหรับลูกระดับที่สองของรูทและแต่ละวิธีควรให้ดาต้าเฟรมของแพนด้าที่เหมือนกันทุกประการ ทั้งหมดยกเว้นการโทรครั้งสุดท้ายpd.Dataframe()ในรายการพจนานุกรม วิธี XSLT แปลง XML เพื่อ CSV สำหรับหล่อในStringIO()pd.read_csv() คำถาม (หลายส่วน) ประสิทธิภาพ: คุณจะอธิบายได้อย่างไรว่าiterparseไฟล์ที่มีขนาดใหญ่กว่ามักจะอธิบายได้ช้ากว่าเนื่องจากไฟล์ถูกแยกวิเคราะห์ซ้ำ ๆ ส่วนหนึ่งมาจากการifตรวจสอบตรรกะหรือไม่? หน่วยความจำ: หน่วยความจำ CPU สัมพันธ์กับการกำหนดเวลาในการเรียก I / O หรือไม่ XSLT และ XPath 1.0 มีแนวโน้มที่จะปรับขนาดได้ไม่ดีกับเอกสาร XML ที่มีขนาดใหญ่เนื่องจากไฟล์ทั้งหมดจะต้องอ่านในหน่วยความจำเพื่อแยกวิเคราะห์ กลยุทธ์: รายการพจนานุกรมเป็นกลยุทธ์ที่ดีที่สุดสำหรับการDataframe()โทรหรือไม่? …
109 python  xml  pandas  xslt  xpath 

5
มีชื่อองค์ประกอบ XSLT หรือไม่
ใน XSLT มีไฟล์ <xsl:value-of select="expression"/> เพื่อรับค่าขององค์ประกอบ แต่มีบางอย่างให้เลือกชื่อแท็กขององค์ประกอบหรือไม่ ในสถานการณ์เช่นนี้: <person> <!-- required stuff --> <name>Robert</name> <!-- optional stuff, free form for future extension. Using XMLSchema's xsd:any --> <profession>programmer</profession> <hobby>photography</hobby> </person> <xsl:for-each select="person"> <xsl:tag-of select="."/> : <xsl:value-of select="."/> </xsl:for-each> เพื่อให้ได้ผลลัพธ์ดังนี้: name : Robert profession : programmer hobby : photography แน่นอน XSLT ข้างต้นจะไม่รวบรวมเพราะ …
101 xml  xslt  xpath 

6
XPath ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่มี () เป็นไปได้หรือไม่?
ฉันใช้งานกับโหนดข้อความทั้งหมดของ DOM ของฉันและตรวจสอบว่า nodeValue มีสตริงที่แน่นอนหรือไม่ /html/body//text()[contains(.,'test')] นี่เป็นกรณีที่ละเอียดอ่อน แต่ผมยังต้องการที่จะจับTest, หรือTEST TesTเป็นไปได้กับ XPath (ใน JavaScript) หรือไม่?
96 javascript  html  xml  xslt  xpath 

6
XSLT สามารถแทรกวันที่ปัจจุบันได้หรือไม่?
โปรแกรมที่เราใช้ในรายงานการส่งออกสำนักงานของฉันโดยแปลไฟล์ XML ที่ส่งออกด้วยไฟล์ XSLT เป็น XHTML ฉันเขียน XSLT ใหม่เพื่อเปลี่ยนการจัดรูปแบบและเพิ่มข้อมูลเพิ่มเติมจากไฟล์ XML ต้นทาง ฉันต้องการรวมวันที่สร้างไฟล์ไว้ในรายงานขั้นสุดท้าย แต่วันที่ / เวลาปัจจุบันไม่รวมอยู่ในไฟล์ XML ดั้งเดิมและฉันไม่มีส่วนควบคุมใด ๆ เกี่ยวกับวิธีสร้างไฟล์ XML ดูเหมือนจะไม่มีการสร้างฟังก์ชันวันที่ใน XSLT ที่จะส่งคืนวันที่ปัจจุบัน ใครมีความคิดบ้างไหมว่าฉันจะรวมวันที่ปัจจุบันระหว่างการแปลง XSLT ได้อย่างไร
95 xslt  xhtml 

6
วิธีต่อสตริงเป็น xsl: value-of select = "…?
<a> <xsl:attribute name="href"> <xsl:value-of select="/*/properties/property[@name='report']/@value" /> </xsl:attribute> </a> มีวิธีใดบ้างในการแคตสตริงอื่นไปยัง <xsl:value-of select="/*/properties/property[@name='report']/@value" /> ฉันต้องการส่งข้อความบางส่วนไปยังแอตทริบิวต์ href นอกเหนือจากค่าคุณสมบัติรายงาน
93 xslt  xpath 

5
XPath และ XSLT 2.0 สำหรับ. NET? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ .NET 3.5 ไม่รองรับ XPATH 2.0 หรือ XSLT 2.0 อย่างสมบูรณ์ซึ่งแย่เกินไป มีใครรู้บ้างว่าสองสิ่งนี้จะรวมและรองรับอย่างเต็มที่ใน. NET เวอร์ชันใด ๆ ในอนาคตหรือไม่?
91 .net  xslt  xpath 

6
Chrome สามารถทำการแปลง XSL ในไฟล์ภายในเครื่องได้หรือไม่?
ฉันกำลังดู xslt และเริ่มทดสอบกับตัวอย่างใน w3schools อย่างไรก็ตามเมื่อฉันบันทึก xml และ xsl ในไฟล์และลองเปิดในเครื่อง chrome จะไม่ทำการแปลง xsl มันแสดงหน้าว่าง ฉันได้เพิ่ม<?xml-stylesheet type="text/xsl" href="style.xsl">แท็กลงในเอกสาร xml แล้วและ firefox แสดงผลตามที่ควรจะเป็น นอกจากนี้ถ้าฉันดูไฟล์ผ่านเว็บเซิร์ฟเวอร์ chrome จะแสดงไฟล์ตามที่ควรจะเป็น chrome มีปัญหาในการค้นหาข้อมูลสไตล์ชีตเมื่อลิงก์อยู่ในเครื่องหรือไม่? การเปลี่ยน href เป็นfile:///C:/xsl/style.xslไม่ได้สร้างความแตกต่าง อัปเดต:สิ่งนี้ดูเหมือนจะเป็นผลข้างเคียงของนโยบายความปลอดภัยที่ไม่ถือว่าไฟล์: /// * เป็นไฟล์ต้นทางเดียวกัน สิ่งนี้ทำให้ข้อผิดพลาดต่อไปนี้ปรากฏในคอนโซล: ความพยายามที่ไม่ปลอดภัยในการโหลดไฟล์ URL: /// C: /xsl-rpg/style.xsl จากเฟรมด้วยไฟล์ URL: /// C: /xsl-rpg/data.xml โดเมนโปรโตคอลและพอร์ตต้องตรงกัน

5
ตัวนับภายใน xsl: สำหรับแต่ละลูป
วิธีรับตัวนับภายใน xsl: สำหรับแต่ละลูปที่จะแสดงจำนวนองค์ประกอบปัจจุบันที่ประมวลผล ตัวอย่างเช่น XML ต้นทางของฉันคือ <books> <book> <title>The Unbearable Lightness of Being </title> </book> <book> <title>Narcissus and Goldmund</title> </book> <book> <title>Choke</title> </book> </books> สิ่งที่อยากได้คือ: <newBooks> <newBook> <countNo>1</countNo> <title>The Unbearable Lightness of Being </title> </newBook> <newBook> <countNo>2</countNo> <title>Narcissus and Goldmund</title> </newBook> <newBook> <countNo>3</countNo> <title>Choke</title> </newBook> </newBooks> XSLT ที่จะแก้ไข: <xsl:stylesheet version="1.0" …
90 xml  xslt  loops 

11
ฉันจะทำให้ XSLT ทำงานใน Chrome ได้อย่างไร
ฉันมีเอกสาร XML ที่นี่ที่เสิร์ฟพร้อมกับสอดคล้องไฟล์ XSL การแปลงจะถูกเรียกใช้งานฝั่งไคลเอ็นต์โดยไม่ต้องใช้ JavaScript ใช้งานได้ดีใน IE (ช็อตสยอง) แต่ใน Google Chrome จะแสดงโหนดข้อความของเอกสารเท่านั้น ฉันรู้ว่าเป็นไปได้ที่จะทำ XSL ฝั่งไคลเอ็นต์ใน Chrome ดังที่ฉันได้เห็นตัวอย่างแล้ว แต่ฉันยังไม่สามารถทำซ้ำความสำเร็จนี้ได้ด้วยตัวเอง ผมทำอะไรผิดหรือเปล่า?

3
จะสร้างค่าบูลีนได้อย่างไร?
ฉันยังใหม่กับ XSLT และคิดไม่ออกว่าฉันผิดพลาดตรงไหนกับรหัสต่อไปนี้ <xsl:variable name="var" select="boolean('false')"/> <xsl:if test="$var'">variable is true</xsl:if> มันจะคืนค่าจริงเสมอเมื่อมันถูกหมายถึงเท็จ ทำไม?

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