ms-access – 如何将CDATA插入从Access 2003导出的XML文本标记?
发布时间:2020-12-16 23:06:36 所属栏目:百科 来源:网络整理
导读:我从Access 2003获得了 XML导出,并尝试使用XSLT在文本字段(latin …)上插入CDATA标记,但我在XSLT中非常糟糕… 这里是XML源: ?xml version="1.0" encoding="UTF-8"? dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org
我从Access 2003获得了
XML导出,并尝试使用XSLT在文本字段(latin …)上插入CDATA标记,但我在XSLT中非常糟糕…
这里是XML源: <?xml version="1.0" encoding="UTF-8"?> <dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="MESSAGES%20old.xsd" generated="2012-07-31T13:25:46"> <export_x005F_xml_message> <libelle>h euismod tincidu </libelle> <price>300</price> <libelle2>h euirci tation ullamc</libelle2> </export_x005F_xml_message> <export_x005F_xml_message> <libelle>h euismod tincidunt ut lao</libelle> <price>200</price> <libelle2>h euirci tation ullamcorper</libelle2> </export_x005F_xml_message> </dataroot> 在这里,我的XSLT开始……: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml"/> <xsl:template match='*[name() = "MESSAGES"]'> <xsl:text disable-output-escaping="yes"> <![CDATA[ </xsl:text> <xsl:copy-of select="./node()"/> <xsl:text disable-output-escaping="yes"> ]]> </xsl:text> </xsl:template> </xsl:stylesheet> 我想得到类似的东西: <?xml version="1.0" encoding="UTF-8"?> <dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="MESSAGES%20old.xsd" generated="2012-07-31T13:25:46"> <export_x005F_xml_message> <libelle><![CDATA[h euismod tincidu ]]></libelle> <price>300</price> <libelle2><![CDATA[h euirci tation ullamc ]]></libelle> </export_x005F_xml_message> <export_x005F_xml_message> <libelle><![CDATA[h euismod tincidunt ut lao ]]></libelle2> <price>200</price> <libelle2><![CDATA[h euirci tation ullamcorper ]]></libelle2> </export_x005F_xml_message> </dataroot> 你能帮我创建合适的XSLT吗? 解决方法
正如这里已经回答:
Transform XML with XSLT and preserve CDATA (in Ruby),更好的答案是使用xsl:output.例如 …
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" cdata-section-elements="libelle libelle2" /> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |