у меня есть:Изменение значения XML с помощью XSLT
<parent>
<groupId>com.test.example</groupId>
<artifactId>myProject</artifactId>
<version>00.01.00.00</version>
</parent>
То, что я хочу
<parent>
<groupId>com.test.example</groupId>
<artifactId>parameter1</artifactId>
<version>parameter2</version>
</parent>
Так что я сделал Java GUI, где я положил свои параметры (это только кнопка код события):
private void btnModifyActionPerformed(ActionEvent e) {
String strArtifactID = txtArtifactID.toString();
int iVersion = new Integer(txtVersion.getText());
Source xmlInput = new StreamSource(new File("c:/Users/balestrierih/Desktop/pomReplace.xml"));
Source xsl = new StreamSource(new File("c:/Users/balestrierih/Desktop/pomReplace.xsl"));
Result xmlOutput = new StreamResult(new File("c:/Users/balestrierih/Desktop/output.xml"));
try {
Transformer transformer = TransformerFactory.newInstance().newTransformer(xsl);
transformer.transform(xmlInput, xmlOutput);
} catch (TransformerException TE) {
TE.getMessage();
}
}
он запустит XSL код:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="artifactID">
<xsl:param name="strArtifactID"/>
<xsl:apply-templates select="($strArtificatID)"/>
</xsl:template>
<xsl:template match="version">
<xsl:param name="iVersion"/>
<xsl:apply-templates select="($iVersion)"/>
</xsl:template>
</xsl:stylesheet>
Но когда я запускаю мою программку, я получил ошибку, которая говорит, что код XSLT не является правильным
Не знаю, если это проблема, но у вас есть misspelt '($ strArtifactID) 'в вашем XSLT – kaykay
Спасибо, но это не решило проблему –
Что именно ваша проблема? Прерывание вашего xslt-преобразования или вы не знаете, как получить желаемый результат xml? –