ich eine XML-Datei wie die folgende haben:benötigen XML mit HTML-Elemente zu analysieren
<?xml version="1.0"?>
<Book>
<Title>Ulysses</Title>
<Author>James <b>Joyce</b></Author>
</Book>
ich diese mit Hilfe von Java in eine pojo wie
title="Ulysses"
author="James <b>Joyce</b>"
Mit anderen Worten analysieren müssen, ich brauche Die HTML- oder benutzerdefinierten benutzerdefinierten XML-Tags bleiben beim Analysieren als reine Textelemente und nicht als XML-Elemente erhalten.
Ich kann das XML überhaupt nicht bearbeiten, aber es wäre in Ordnung für mich, eine benutzerdefinierte xslt-Datei zu erstellen, um das XML zu transformieren.
ich die folgende Java-Code für die Verwendung von Xslt haben mit dem Lesen des XML zu unterstützen,
TransformerFactory factory = TransformerFactory.newInstance();
Source stylesheetSource = new StreamSource(new File(stylesheetPathname).getAbsoluteFile());
Transformer transformer = factory.newTransformer(stylesheetSource);
Source inputSource = new StreamSource(new File(inputPathname).getAbsoluteFile());
Result outputResult = new StreamResult(new File(outputPathname).getAbsoluteFile());
transformer.transform(inputSource, outputResult);
Das ist mein Xslt in die Datei gilt, die aus geschrieben, aber ich kann nicht kommen mit dem richtigen xslt, um es zu tun. Ich habe mir Add CDATA to an xml file angesehen, aber das funktioniert nicht für mich.
Im Grunde glaube ich möchte, dass die Datei aussehen
<?xml version="1.0"?>
<Book>
<Title>Ulysses</Title>
<Author><![CDATA[James <b>Joyce</b>]]></Author>
</Book>
Dann kann ich "James <b>Joyce</b>"
extrahieren. Ich habe versucht, den hier vorgeschlagenen Ansatz: Add CDATA to an xml file Aber es hat nicht für mich funktioniert.
habe ich die folgende Xslt:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="no"/>
<xsl:template match="Author">
<xsl:copy>
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:copy-of select="*"/>
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</xsl:copy>
</xsl:template>
und dies erzeugt:
<?xml version="1.0" encoding="UTF-8"?>
Ulysses
<Author><![CDATA[
<b>Joyce</b>]]></Author>
Können Sie mir bitte dabei helfen? Ich möchte, dass das Originaldokument in seiner Gesamtheit ausgeschrieben wird, aber mit der CDATA, die alles innerhalb des Autorenelements umgibt. Dank
Was bedeutet „es nicht für mich arbeiten“ aussehen? XML mit Markup ist kein richtiges XML. Sie können diesen magischen Zeichen entkommen oder in CDATA einhüllen. Keine andere Wahl. – duffymo