我有需要转换的传入xml。 xml开始了:
<?xml version="1.0" encoding="utf-8"?>
<ExportDataSet xmlns="http://tempuri.org/ExportDataSet.xsd">
<xs:schema id="ExportDataSet" targetNamespace="http://tempuri.org/ExportDataSet.xsd" xmlns:mstns="http://tempuri.org/ExportDataSet.xsd" xmlns="http://tempuri.org/ExportDataSet.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="ExportDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Document">
尝试转换此xml我收到错误。如果将第一个方案更改为如下所示,我发现转换成功完成:
<?xml version="1.0" encoding="utf-8"?>
<ExportDataSet xmlns:d2p1="http://www.w3.org/2001/XMLSchema">
<xs:schema id="ExportDataSet" targetNamespace="http://tempuri.org/ExportDataSet.xsd" xmlns:mstns="http://tempuri.org/ExportDataSet.xsd" xmlns="http://tempuri.org/ExportDataSet.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="ExportDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
所以在开头 xmlns =&#34; http://tempuri.org/ExportDataSet.xsd" 更改为 xmlns:d2p1 =&#34; http://www.w3.org/2001/XMLSchema" 我使用Visual Studio生成的标准XSLT文件。 in始于:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="ExportDataSet" >
<xsl:element name="Declarations">
<xsl:apply-templates select="Document" />
</xsl:element>
</xsl:template>
<xsl:template match="Document">
...
有没有办法修改我的XSLT文件来处理原始XML而不对其应用任何更改? 提前感谢您的帮助!
答案 0 :(得分:0)
非常感谢大家, 我不得不使用前缀声明新模式http://tempuri.org/ExportDataSet.xsd,而不是在所有节点上使用该前缀:
$translateProvider.useStaticFilesLoader({
prefix: 'main/i18n/local-',
suffix: '.json'
});
现在改造工作正常。