Сначала я получу квалификацию, что я не очень хорошо разбираюсь в XSLT. Но я пытаюсь скопировать 3 XML-документа в один родительский документ.XSLT для копирования элемента без пространства имен
XSLT работает отлично, за исключением того, что родительские узлы печатаются с атрибутом xmlns = "", что приводит к сбою моих проверок.
Итак, мой вопрос заключается в том, как скопировать эти элементы из отдельных документов без добавления этого атрибута xmlns?
Это образец вывода в пункт назначения - примечание Я хочу, чтобы он не печатал xmlns = "".
<Feed xmlns="http://www.bazaarvoice.com/xs/PRR/ProductFeed/5.6"
name="Officeworks" incremental="false"
extractDate="2014-01-28T14:42:12+11:00">
<Brands xmlns="">
<Brand>
<Name>Panasonic</Name>
<ExternalId>12345</ExternalId>
</Brand>
Это XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ex="http://exslt.org/dates-and-times" extension-element-prefixes="ex">
<xsl:template match="/">
<xsl:variable name="dateNow" select="ex:date-time()"/>
<Feed xmlns="http://www.bazaarvoice.com/xs/PRR/ProductFeed/5.6" name='Officeworks' incremental='false'>
<xsl:attribute name="extractDate"><xsl:value-of select="$dateNow" /></xsl:attribute>
<xsl:copy-of select="document('@[email protected]/bv_brands_xml.001.xml')/Brands"/>
<xsl:copy-of select="document('@[email protected]/bv_categories_xml.001.xml')/Categories"/>
<xsl:copy-of select="document('@[email protected]/bv_products_xml.001.xml')/Products"/>
</Feed>
</xsl:template>
</xsl:stylesheet>
Ваша информация очень запутанным. Вы явно создаете элемент Feed в пространстве имен «http://www.bazaarvoice.com/xs/PRR/ProductFeed/5.6», и в ответ на кешлам вы говорите, что узлы должны находиться в этом пространстве имен, но тогда вы говорите вы не хотите, чтобы он «печатал атрибут xmlns = ...», который является тем, что помещает его в это пространство имен. Вы хотите это в пространстве имен или нет? –