Не удается удалить пространство имен XSL из элемента - PullRequest
0 голосов
/ 24 марта 2020

Я хочу добавить элемент «InvoiceNumber», используя таблицу стилей XSL, но он либо заканчивается пустым тегом xmlns, либо полным именем пространства имен, даже если я добавил то же пространство имен поверх моей таблицы стилей. Я посмотрел эту ветку здесь , но не могу заставить ее работать.

Таблица стилей:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fmp="http://www.filemaker.com/fmpdsoresult"
    xmlns="http://www.filemaker.com/data"
    exclude-result-prefixes="fmp">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

    <xsl:template match="fmp:FMPDSORESULT">
        <xsl:choose>
            <xsl:when test="fmp:ROW[1]/fmp:Status_Aktuell = 'Rechnung'">
                <Invoice xmlns="http://www.ebinterface.at/schema/5p0/" GeneratingSystem='Business Assistant' DocumentType='Invoice' InvoiceCurrency='EUR' Language='ger'>
                    <xsl:call-template name="form1" xmlns="http://www.filemaker.com/data"/>
                </Invoice>
            </xsl:when>
            <xsl:when test="Status_Aktuell = Rechnung">
                <Invoice xmlns="http://www.ebinterface.at/schema/5p0/" GeneratingSystem='Business Assistant' DocumentType='InvoiceForAdvancePayment' InvoiceCurrency='EUR' Language='ger'>
                    <xsl:call-template name="form1"/>
                </Invoice>
            </xsl:when>
            <xsl:when test="Status_Aktuell = Rechnung">
                <Invoice xmlns="http://www.ebinterface.at/schema/5p0/" GeneratingSystem='Business Assistant' DocumentType='InvoiceForPartialDelivery' InvoiceCurrency='EUR' Language='ger'>
                    <xsl:call-template name="form1"/>
                </Invoice>
            </xsl:when>
            <xsl:when test="Status_Aktuell = Rechnung">
                <Invoice xmlns="http://www.ebinterface.at/schema/5p0/" GeneratingSystem='Business Assistant' DocumentType='FinalSettlement' InvoiceCurrency='EUR' Language='ger'>
                    <xsl:call-template name="form1"/>
                </Invoice>
            </xsl:when>
            <xsl:when test="Status_Aktuell = Rechnung">
                <Invoice xmlns="http://www.ebinterface.at/schema/5p0/" GeneratingSystem='Business Assistant' DocumentType='CreditMemo' InvoiceCurrency='EUR' Language='ger'>
                    <xsl:call-template name="form1"/>
                </Invoice>
            </xsl:when>
        </xsl:choose>
    </xsl:template>

    <xsl:template name="form1">
        <xsl:element name="InvoiceNumber" namespace="http://www.filemaker.com/data"><xsl:value-of select="fmp:ROW[1]/fmp:Id_Vorgang"/></xsl:element>
    </xsl:template>
</xsl:stylesheet>

Вот XML:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Diese Grammatik wurde abgelehnt - verwenden Sie stattdessen FMPXMLRESULT. -->
<FMPDSORESULT xmlns="http://www.filemaker.com/fmpdsoresult">
    <ERRORCODE>0</ERRORCODE>
    <DATABASE>Business_Assistant_E_2_7.fmp12</DATABASE>
    <LAYOUT></LAYOUT>
    <ROW MODID="9" RECORDID="31">
        <Anschriftsfeld>Frau
Elfriede Leo
Ried 6a
6130 Schwaz
Österreich</Anschriftsfeld>
        <Anschriftsfeld_oL>Frau
Elfriede Leo
Ried 6a
6130 Schwaz</Anschriftsfeld_oL>
        <Anz_Positionen>1</Anz_Positionen>
        <Bezahlung_Art>Ãœberweisung</Bezahlung_Art>
        <Bezahlung_Betrag></Bezahlung_Betrag>
        <Bezahlung_Datum></Bezahlung_Datum>
        <Bezahlung_Restbetrag>258,5</Bezahlung_Restbetrag>
        <Bezahlung_Restbetrag_Skonto>258,5</Bezahlung_Restbetrag_Skonto>
        <Bezahlung_Status>Differenzbetrag</Bezahlung_Status>
        <Bruttosumme_abzglSkonto>258,516</Bruttosumme_abzglSkonto>
        <Datum_der_Angebotsablehnung></Datum_der_Angebotsablehnung>
        <Datum_der_Angebotsbestätigung></Datum_der_Angebotsbestätigung>
        <Datum_sowie_Uhrzeit_des_Versands></Datum_sowie_Uhrzeit_des_Versands>
        <Differenz_akzeptieren></Differenz_akzeptieren>
        <Differenzbesteuerung></Differenzbesteuerung>
        <Differenzbesteuerung_Auswertung></Differenzbesteuerung_Auswertung>
        <DS_Anzahl_Selektion>1</DS_Anzahl_Selektion>
        <Erstelldatum></Erstelldatum>
        <Gesamtsumme>258,516</Gesamtsumme>
        <Gesamtsumme_inkl_Mahnkosten>258,516</Gesamtsumme_inkl_Mahnkosten>
        <Gültig_bis>06.02.2020</Gültig_bis>
        <ID_16Z_auslesen>D_2002061252_42_</ID_16Z_auslesen>
        <Id_Angebot>D_2002061252_42_An</Id_Angebot>
        <Id_Ankauf></Id_Ankauf>
        <Id_Auftragsbestätigung></Id_Auftragsbestätigung>
        <Id_Bestellung></Id_Bestellung>
        <Id_Fz></Id_Fz>
        <Id_K>K_1910091453_10</Id_K>
        <Id_Lieferschein></Id_Lieferschein>
        <Id_Mahnung1></Id_Mahnung1>
        <Id_Mahnung2></Id_Mahnung2>
        <Id_Mahnung3></Id_Mahnung3>
        <Id_Rechnung>D_2002061252_42_AnRe</Id_Rechnung>
        <Id_Rechnungskorrektur></Id_Rechnungskorrektur>
        <Id_Vorgang>D_2002061252_42_AnRe</Id_Vorgang>
        <KombiSuche>Elfriede Leo
Leo
D_2002061252_42_AnRe

Bestellung dingensbumens
Rechnung
steuerpflichtig

Differenzbetrag
Neues Produkt
artikelbeschreibung dumdidum
2020
Februar</KombiSuche>
        <Kunde>Elfriede Leo</Kunde>
        <Leistungsbeginn>25.02.2020</Leistungsbeginn>
        <Leistungsende>27.02.2020</Leistungsende>
        <Leistungszeitraum>3 Tage</Leistungszeitraum>
        <letzte_Suche>Die Ergebnisse basieren auf: </letzte_Suche>
        <lfd_Nr></lfd_Nr>
        <lfd_Nr_Re></lfd_Nr_Re>
        <Mahnkosten></Mahnkosten>
        <Mahnkosten_brutto>0</Mahnkosten_brutto>
        <Mahntext></Mahntext>
        <Mahntext_Druck></Mahntext_Druck>
        <Nettosumme>258</Nettosumme>
        <Nettosumme_abzglSkonto>258</Nettosumme_abzglSkonto>
        <Notiz_intern></Notiz_intern>
        <Objekt></Objekt>
        <Popover_Filtern_nach_Produktkategorien>Produkt</Popover_Filtern_nach_Produktkategorien>
        <popover_neu_Anrede></popover_neu_Anrede>
        <popover_neu_artikel_aufschlag></popover_neu_artikel_aufschlag>
        <popover_neu_artikel_beschreibung></popover_neu_artikel_beschreibung>
        <popover_neu_artikel_einheit></popover_neu_artikel_einheit>
        <popover_neu_artikel_kat_produkt></popover_neu_artikel_kat_produkt>
        <popover_neu_artikel_kat_service></popover_neu_artikel_kat_service>
        <popover_neu_artikel_kosten></popover_neu_artikel_kosten>
        <popover_neu_artikel_lieferant></popover_neu_artikel_lieferant>
        <popover_neu_artikel_minlager></popover_neu_artikel_minlager>
        <popover_neu_artikel_name></popover_neu_artikel_name>
        <popover_neu_artikel_netto></popover_neu_artikel_netto>
        <popover_neu_artikel_preisorientierung></popover_neu_artikel_preisorientierung>
        <popover_neu_artikel_sku></popover_neu_artikel_sku>
        <popover_neu_artikel_steuerpflichtig></popover_neu_artikel_steuerpflichtig>
        <popover_neu_artikel_steuersatz></popover_neu_artikel_steuersatz>
        <popover_neu_artikel_typ></popover_neu_artikel_typ>
        <popover_neu_H_A1></popover_neu_H_A1>
        <popover_neu_H_A2></popover_neu_H_A2>
        <popover_neu_H_Land></popover_neu_H_Land>
        <popover_neu_H_Ort></popover_neu_H_Ort>
        <popover_neu_H_PLZ></popover_neu_H_PLZ>
        <popover_neu_Mail></popover_neu_Mail>
        <popover_neu_Nachname></popover_neu_Nachname>
        <popover_neu_Telefon></popover_neu_Telefon>
        <popover_neu_Unternehmen></popover_neu_Unternehmen>
        <popover_neu_Vorname></popover_neu_Vorname>
        <Protokoll_Druck>25.02.2020 16:45:07</Protokoll_Druck>
        <Protokoll_Email></Protokoll_Email>
        <Protokoll_PDF></Protokoll_PDF>
        <Rabattsumme>0</Rabattsumme>
        <Rechnungsadresse_unterscheidet_sich_von_Lieferadresse></Rechnungsadresse_unterscheidet_sich_von_Lieferadresse>
        <Referenz>Bestellung dingensbumens</Referenz>
        <Skonto>0</Skonto>
        <Skonto_Betrag>0</Skonto_Betrag>
        <Skonto_Betrag_Brutto>0</Skonto_Betrag_Brutto>
        <Status_Aktuell>Rechnung</Status_Aktuell>
        <Statusfilter>-</Statusfilter>
        <Steuerstatus>steuerpflichtig</Steuerstatus>
        <Steuersumme>,516</Steuersumme>
        <Suche_Produkt></Suche_Produkt>
        <Suche_Unternehmen></Suche_Unternehmen>
        <Suche_Vorgang></Suche_Vorgang>
        <Summe_offen>258,5</Summe_offen>
        <Tage_Netto>10</Tage_Netto>
        <Tage_Skonto>0</Tage_Skonto>
        <Titel></Titel>
        <Vorgang_Jahr>2020</Vorgang_Jahr>
        <Vorgang_Monat>2</Vorgang_Monat>
        <Vorgang_Monatname>Februar</Vorgang_Monatname>
        <Vorgangsdatum>25.02.2020</Vorgangsdatum>
        <Vorlage_Name></Vorlage_Name>
        <Zahlungsziel_Netto>06.03.2020</Zahlungsziel_Netto>
        <Zahlungsziel_Skonto>25.02.2020</Zahlungsziel_Skonto>
        <Zusammenfassung></Zusammenfassung>
    </ROW>
</FMPDSORESULT>

Вывод:

<?xml version="1.0" encoding="UTF-8"?>

<Invoice xmlns="http://www.ebinterface.at/schema/5p0/" GeneratingSystem="Business Assistant" DocumentType="Invoice" InvoiceCurrency="EUR" Language="ger">

<InvoiceNumber xmlns="http://www.filemaker.com/data">D_2002061252_42_AnRe</InvoiceNumber>

</Invoice>

Как я хочу, чтобы он выглядел следующим образом:

<?xml version="1.0" encoding="UTF-8"?>

<Invoice xmlns="http://www.ebinterface.at/schema/5p0/" GeneratingSystem="Business Assistant" DocumentType="Invoice" InvoiceCurrency="EUR" Language="ger">

<InvoiceNumber>D_2002061252_42_AnRe</InvoiceNumber>

</Invoice>

Если я удаляю объявления пространства имен, вывод заканчивается пустым xmlns в элементе. Что я делаю не так?

1 Ответ

0 голосов
/ 24 марта 2020

Почему вы используете xsl:element name="InvoiceNumber" namespace="http://www.filemaker.com/data"><xsl:value-of select="fmp:ROW[1]/fmp:Id_Vorgang"/></xsl:element>? Это явно называет неправильное пространство имен http://www.filemaker.com/data.

Поместите туда правильное пространство имен или используйте буквальный элемент результата

<InvoiceNumber xmlns="http://www.ebinterface.at/schema/5p0/">
  <xsl:value-of select="fmp:ROW[1]/fmp:Id_Vorgang"/>
</InvoiceNumber>

Кажется, используя xmlns="http://www.ebinterface.at/schema/5p0/" на xsl:stylesheet упростит ваш код и в других местах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...