qpwoeiruyt 发表于 2020-12-27 03:51:24

xsl导入xml数据的问题

本帖最后由 qpwoeiruyt 于 2020-12-27 20:24 编辑

请问如何从test.xml 中加粗的数值 添加到 test.xsl文件的属性值里面 ???谢谢



test.xsl文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
        <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="从xml中导入值!" height="从xml中导入值!" style="background-color:blue">
</svg>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

test.xml 文件:

<?xml version="1.0"?>
<?xml-stylesheet type="tsxt/xsl" href="projet.xsl"?>
<game
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="http://www.w3school.com.cn test.xsd">

<map>
    <widthP>640</widthP>
    <heightP>550</heightP>
</map>

</game>

z5560636 发表于 2020-12-27 03:51:25

xsl = """
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="从xml中导入值!" height="从xml中导入值!" style="background-color:blue">
</svg>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
"""
xml= """
<?xml version="1.0"?>
<?xml-stylesheet type="tsxt/xsl" href="projet.xsl"?>
<game
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="http://www.w3school.com.cn test.xsd">

<map>
    <widthP>640</widthP>
    <heightP>550</heightP>
</map>

</game>
"""
from bs4 import BeautifulSoup

xslsoup = BeautifulSoup(xsl,"lxml")
xmlsoup = BeautifulSoup(xml,"lxml")
# print(soup.prettify())

xslsoup.svg.attrs["width"] = xmlsoup.widthp.string
xmlsoup = BeautifulSoup(xml,"xml")
xslsoup.svg.attrs["height"] = xmlsoup.heightP.string
print(xslsoup.svg.attrs["height"])
print(xslsoup.svg.attrs["width"])

weiter 发表于 2020-12-27 18:51:44

本帖最后由 weiter 于 2020-12-27 18:53 编辑

试一下JS的功能?
直接搞似乎不太可能
但是用JS获取xml里的数据然后转移到xsl里面应该是可以的
(没学过这个玩意也不知道JS能不能和这两个一起用)

qpwoeiruyt 发表于 2020-12-30 00:08:04

weiter 发表于 2020-12-27 11:51
试一下JS的功能?
直接搞似乎不太可能
但是用JS获取xml里的数据然后转移到xsl里面应该是可以的


似乎也不太行

z5560636 发表于 2020-12-30 18:13:57

xsl = """
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="从xml中导入值!" height="从xml中导入值!" style="background-color:blue">
</svg>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
"""
xml= """
<?xml version="1.0"?>
<?xml-stylesheet type="tsxt/xsl" href="projet.xsl"?>
<game
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="http://www.w3school.com.cn test.xsd">

<map>
    <widthP>640</widthP>
    <heightP>550</heightP>
</map>

</game>
"""
from bs4 import BeautifulSoup

xslsoup = BeautifulSoup(xsl,"lxml")
xmlsoup = BeautifulSoup(xml,"lxml")
# print(soup.prettify())

xslsoup.svg.attrs["width"] = xmlsoup.widthp.string
xmlsoup = BeautifulSoup(xml,"xml")
xslsoup.svg.attrs["height"] = xmlsoup.heightP.string
print(xslsoup.svg.attrs["height"])
print(xslsoup.svg.attrs["width"])
页: [1]
查看完整版本: xsl导入xml数据的问题