Foren
Migrating WEB Content using Structures
Jonatan Oyola, geändert vor 10 Jahren.
Migrating WEB Content using Structures
Regular Member Beiträge: 193 Beitrittsdatum: 06.06.07 Neueste Beiträge
Hi, I am migrating articles from a CMS to Liferay. So I've created a XLS to transform the article to be valid for liferay.
The way to import the content was taken from welcome theme plugins. Example: Liferay Benefits.xml
But I dont know how to generate a valid value for: instance-id
Can somebody help to resolve it.
Thanks on advances.
<!--?xml version="1.0" encoding="UTF-8"?-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8" />
<xsl:template match="/article">
<root available-locales="es_ES" default-locale="es_ES">
<dynamic-element instance-id="XbU4Tt8d" name="main-info" type="text" index-type="">
<dynamic-content>
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:value-of select="maininfo/content" disable-output-escaping="yes" />
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</dynamic-content>
</dynamic-element>
<dynamic-element instance-id="XbU4Tt8d" name="scheme" type="text" index-type="">
<dynamic-content>
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:value-of select="scheme/content" disable-output-escaping="yes" />
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</dynamic-content>
</dynamic-element>
<dynamic-element instance-id="XbU4Tt8d" name="chronology" type="text" index-type="">
<dynamic-content>
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:value-of select="chronology/content" disable-output-escaping="yes" />
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</dynamic-content>
</dynamic-element>
<xsl:for-each select="thoughts/thought">
<dynamic-element instance-id="XbU4Tt8d" name="thoughts" type="text" index-type="">
<dynamic-content>
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:value-of select="." disable-output-escaping="yes" />
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</dynamic-content>
</dynamic-element>
</xsl:for-each>
<dynamic-element instance-id="XbU4Tt8d" name="timing" type="text" index-type="">
<dynamic-content>
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:value-of select="location/timing/@century" />
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</dynamic-content>
</dynamic-element>
<dynamic-element instance-id="XbU4Tt8d" name="country" type="text" index-type="">
<dynamic-content>
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:value-of select="location/countries/country/@name" />
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</dynamic-content>
</dynamic-element>
<dynamic-element instance-id="XbU4Tt8d" name="continent" type="text" index-type="">
<dynamic-content>
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:value-of select="location/continents/continent/@name" />
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</dynamic-content>
</dynamic-element>
</root>
</xsl:template>
</xsl:stylesheet>
The way to import the content was taken from welcome theme plugins. Example: Liferay Benefits.xml
But I dont know how to generate a valid value for: instance-id
Can somebody help to resolve it.
Thanks on advances.
Jonatan Oyola, geändert vor 10 Jahren.
RE: Migrating WEB Content using Structures
Regular Member Beiträge: 193 Beitrittsdatum: 06.06.07 Neueste Beiträge
Finnaly I could resolve it, I must add the attribute instance-id with the value PwdGenerator.getPassword() for each dynamic-element tag.
Source xslt = new StreamSource(getClass().getClassLoader().getResourceAsStream("/toArticle.xsl"));
Transformer transformer = factory.newTransformer(xslt);
Source text = new StreamSource(new StringReader(art.getInfo()));
transformer.transform(text, new StreamResult(new File("/tmp", art.getName() + ".xml")));
Document document = SAXReaderUtil.read(new File("/tmp", art.getName() + ".xml"));
List<element> elementList = document.getRootElement().elements();
for(Element element : elementList) {
if(Validator.equals(element.getName(), "dynamic-element")) {
element.addAttribute("instance-id", PwdGenerator.getPassword());
}
}
String xmlContent = document.asXML();
</element>