Я разработал таблицу стилей XML, чтобы преобразовать относительно простой XML-файл в VS2010. Когда я запускаю XSLT Debugging в VS, он отображает ожидаемый результат в новом окне.Преобразования XML в браузере не работают
Так я тогда добавил ссылку на файл XSLT в исходном XML:
<?xml-stylesheet type="text/xsl" href="ABC.xslt"?>
Однако, когда я просмотреть этот файл в браузере, я не получаю преобразованный результат. В IE9, Firefox и Chrome
XSLT (возможно, в измененной форме) будет использоваться третьей стороной для создания окончательного XML, поэтому это не имеет существенного значения, но это полезный инструмент, демонстрирующий, что вывод из исходной базы данных (которая генерирует исходный XML), после преобразования будет выглядеть как окончательный XML.
XML Пример:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="abc.xslt"?>
<afterTreatmentSystemRequest>
<afterTreatmentSystem>
<ID>93073010005597</ID>
<shipmentDate>20120330</shipmentDate>
<technicalApprovalDate>20120330</technicalApprovalDate>
</afterTreatmentSystem>
<executionSettingsDate>2012-03-30T14:17:26</executionSettingsDate>
</afterTreatmentSystemRequest>
XSLT:
<?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="/afterTreatmentSystemRequest">
<nsmajorassemblyai:storeAfterTreatmentSystemRequest category="MajorAssemblyAdapter" delta="true" version="2.10" xmlns:nsmajorassemblyai="http://majorassembly.mysite.com/ai">
<requestHeader userId="d2vswen"/>
<xsl:apply-templates select="afterTreatmentSystem" />
<xsl:apply-templates select="executionSettingsDate" />
</nsmajorassemblyai:storeAfterTreatmentSystemRequest>
</xsl:template>
<xsl:template match="afterTreatmentSystem">
<afterTreatmentSystem delta="true" dataCardAvailable="true">
<xsl:attribute name="id">
<xsl:value-of select="ID"/>
</xsl:attribute>
<activeCustomer addressCity="" addressCountry="" addressStreet="" addressZip="" customerNumber="" firstname="" name=""/>
<activeProductDate>
<xsl:attribute name="shipmentDate">
<xsl:value-of select="shipmentDate"/>
</xsl:attribute>
<xsl:attribute name="technicalApprovalDate">
<xsl:value-of select="technicalApprovalDate"/>
</xsl:attribute>
</activeProductDate>
</afterTreatmentSystem>
</xsl:template>
<xsl:template match="executionSettingsDate">
<executionSettings causation="plant" issueThreshold="err" systemPriority="2" unresolvedConflictAction="notifyAdmin" userId="d2vswen">
<xsl:attribute name="date">
<xsl:value-of select="."/>
</xsl:attribute>
</executionSettings>
</xsl:template>
</xsl:stylesheet>
UPDATE: Я снова вставил XML и XSL сегменты - убедившись, что они соответствуют версии, которые работают хорошо в VS2010. Следуя предложению Димитрия использовать IE Developer Tools (F12), я вижу, что произошел с преобразованием, но мне все еще не хватает элемента executeSettings.
Ожидаемый выход:
<?xml version="1.0" encoding="utf-8"?>
<nsmajorassemblyai:storeAfterTreatmentSystemRequest category="MajorAssemblyAdapter" delta="true" version="2.10" xmlns:nsmajorassemblyai="http://majorassembly.mysite.com/ai">
<requestHeader userId="d2vswen" />
<afterTreatmentSystem delta="true" dataCardAvailable="true" id="93073010005597">
<activeCustomer addressCity="" addressCountry="" addressStreet="" addressZip="" customerNumber="" firstname="" name="" />
<activeProductDate shipmentDate="20120330" technicalApprovalDate="20120331" />
</afterTreatmentSystem>
<executionSettings causation="plant" issueThreshold="err" systemPriority="2" unresolvedConflictAction="notifyAdmin" userId="d2vswen" date="2012-03-30T14:17:26" />
</nsmajorassemblyai:storeAfterTreatmentSystemRequest>
Это подняло бы ошибку в VS - XML, не является хорошо сформированным XML-документ. Пожалуйста исправьте. Если вы все равно получите тот же результат, убедитесь, что файл 'abc.xslt' находится в том же каталоге, что и файл XML. –
XML хорошо сформирован, и оба файла находятся в одной папке. – CJM
CJM: Как было сказано в моем ответе, преобразование выполняется нормально, и это можно проверить. Браузер не отображает результат, потому что это не html. –