我已經在網站上看到了示例和解決方案,但我的編碼仍然存在一些問題。我不知道如何改變它。這是我的 xml 編碼,另存為 testing.xml
<?xml version="1.0"?>
<Menu>
<Title>Snacks</Title>
<Icecreams>
<Icecream>Nutella brownie</Icecream>
<Icecream>Blackcurrent</Icecream>
</Icecreams>
<Beverages>
<Beverage>Fresh Mango Shake</Beverage>
<Beverage>Cold coffee</Beverage>
</Beverages>
<Title>Starters</Title>
<NonvegStarter>
<Nonveg>Chilly chicken</Nonveg>
<Nonveg>Chicken Urwal</Nonveg>
</NonvegStarter>
<vegStarter>
<veg>Veg Manchurian</veg>
<veg>Spring roll</veg>
</vegStarter>
</Menu>
這是我的 xsl 編碼,另存為 testing.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*" />
<xsl:output method="text" indent="no" />
<xsl:template match="/">
Menu:<xsl:value-of select="/Menu/Title"/>
Icecreams: <xsl:apply-templates select="/Menu/Icecreams/Icecream"/>
</xsl:template>
<xsl:template match="Icecream">
— <xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
我使用推薦的編碼
import lxml.etree as ET
dom = ET.parse(testing.xml)
xslt = ET.parse(testing.xsl)
transform = ET.XSLT(xslt)
newdom = transform(dom)
print(ET.tostring(newdom, pretty_print=True))
它會輸出“名稱“測驗”未定義的錯誤”
uj5u.com熱心網友回復:
ET.parse(testing.xml)應該是ET.parse('testing.xml')。需要對第二行進行相同的更改。
我不明白你想用XSLT 中的print(ET.tostring(newdom, pretty_print=True))輸出方法實作什么text。
無論如何,lxml 檔案建議使用newdom.write_outputegnewdom.write_output('result.txt')是處理輸出 XSLT 轉換結果的更好方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/316699.html
