Исходя из моего предыдущего вопроса (how to transform XML?), у меня теперь есть хорошо структурированный XML-документ, как это ..Как преобразовать XML в текст
<?xml version="1.0" encoding="UTF-8"?>
<root>
<employee id="1" reportsTo="1" title="CEO">
<employee id="2" reportsTo="1" title="Director of Operations">
<employee id="3" reportsTo="2" title="Human Resources Manager" />
</employee>
</employee>
</root>
Теперь мне нужно, чтобы преобразовать его в JavaScript, как это. .
var treeData = [
{
"name": "CEO",
"parent": "null",
"children": [
{
"name": "Director of Operations",
"parent": "Top Level",
"children": [
{
"name": "Human Resources Manager",
"parent": "Level 2: A"
}
]
}
]
}
];
Я начал писать XSLT, которая в настоящее время выглядит следующим образом ..
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="text" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="root">
<xsl:apply-templates select="employee" />
</xsl:template>
<xsl:template match="employee">
<xsl:param name="eId" select="@id" />
<xsl:param name="eReports" select="@reportsTo" />
<xsl:param name="eTitle" select="@title" />
<xsl:value-of select="concat($eTitle, ' and ', $eId)" />
<xsl:apply-templates select="employee" />
</xsl:template>
</xsl:stylesheet>
Но когда я применяю преобразование (через библиотеку lxml pythons), я получаю сообщение «Нет». (В случае, если это помогает, вот команда LXML я использую ...)
dom = ET.parse("input.xml")
xslt = ET.parse("transform.xslt")
transform = ET.XSLT(xslt)
newdom = transform(dom)
print(ET.tostring(newdom, pretty_print=True))
Я знаю, что мой XSLT далеко не полный, но почему я не получаю любой выход? Должен ли я, по крайней мере, печатать титул на работу?
«* почему я не получаю никакого вывода * «Ваша проблема не может быть воспроизведена с помощью кода, который вы опубликовали. –
Результат с использованием вашего текущего кода: «CEO» и «1Director of Operations» и «2Human Resources Manager» и «3». –
Спасибо @ michael.hor257k Я нахожусь «Нет» на своей машине. Я думаю, что моя проблема может быть связана с тем, как я использую преобразование в lxml. –