2016-11-30 4 views
0

dumme Frage zugreifen, aber ich hoffe, ich kann hier Hilfe bekommen, muss ich auf bestimmte Knoten in XSL zugreifen, die XML, die ich mit sieht sieht wie folgt aus, kann mir jemand eine Idee geben, was meine XSL sollte aussehen, um auf den Inhalt des Knotens "Value" zuzugreifen, kann ich nicht egal, wie ich versuche, diesen Knoten zu erreichen! - Jede Hilfe geschätzt !!!! :Wie auf einen bestimmten Knoten in XSL

<?xml version="1.0" encoding="UTF-8" ?> 
<CrystalReport xmlns="urn:crystal-reports:schemas:report-detail" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="urn:crystal-reports:schemas:report-detail http://www.businessobjects.com/products/xml/CR2008Schema.xsd"> 
<Group Level="1"> 
    <Group Level="2"> 
     <Details Level="3"> 
      <Section SectionNumber="1"> 
       <Field Name="Field5" FieldName="{ARTransaction.Transactions}"> 
        <FormattedValue>0.00</FormattedValue> 
        <Value>0.00</Value> 
       </Field> 
       <Field Name="Field15" FieldName="{ARTransaction.PostingDate}"> 
        <FormattedValue>8/1/2016</FormattedValue> 
        <Value>2016-08-01</Value> 
       </Field> 
       <Field Name="Field14" FieldName="{ARTransaction.AuditTrail}"> 
        <FormattedValue>2016083100154</FormattedValue> 
        <Value>2016083100154</Value> 
       </Field> 
       <Field Name="Field13" FieldName="{ARTransaction.JobN}"> 
        <FormattedValue>-25043</FormattedValue> 
        <Value>-25043</Value> 
       </Field> 
       <Field Name="Field11" FieldName="{Customer.CustomerName}"> 
        <FormattedValue>First Church of Christ</FormattedValue> 
        <Value>First Church of Christ</Value> 
       </Field> 
       <Field Name="Field7" FieldName="{ARTransaction.CustomerN}"> 
        <FormattedValue>13157</FormattedValue> 
        <Value>13157</Value> 
       </Field> 
       <Field Name="Field6" FieldName="{ARTransaction.InvoiceN}"> 
        <FormattedValue>25043</FormattedValue> 
        <Value>25043</Value> 
       </Field> 
       <Field Name="SalesmanN1" FieldName="{ARTransaction.SalesmanN}"> 
        <FormattedValue>22</FormattedValue> 
        <Value>22</Value> 
       </Field> 
      </Section> 
     </Details> 
    </Group> 
    </Group> 
</Group> 
<ReportFooter> </ReportFooter> 

XSL:

<xsl:output method="xml" indent="yes"/> 

<xsl:template match="/"> 
    <xsl:element name="CrystalReport"> 
     <xsl:attribute name="xsi:schemaLocation">http://www.w3.org/2001/XMLSchema-instance</xsl:attribute> 
     <xsl:attribute name="version">1.2</xsl:attribute>  
    </xsl:element> 
    <xsl:element name="DR"> 
    <xsl:value-of select="Group/Group/Details/Section/Field[@Name='Field13']/Value"/> 
    </xsl:element> 

</xsl:template> 

+0

Bitte geben Sie ein vollständiges XML sowie das erwartete Ergebnis an (siehe: [mcve]). Es gibt mehrere "Value" -Elemente in Ihrer Eingabe, sodass Ihre Anfrage nicht klar ist. –

+0

Entschuldigung - nicht sehr klar war ich! Die folgende XML ist die vollständige, ich versuche auf den Knoten von 'Value' zuzugreifen, wo Field Name = 'Field13', ich habe keine Ahnung, wie Sie dies mit XSL erreichen .... – DPR

+0

Also, was hast du probiert? –

Antwort

0

Das Hauptproblem bei Ihrem Versuch ist, dass es den Standard-Namespace der XML-Quell ignoriert.

Sie müssen den Namespace in Ihrem Stylesheet deklarieren, ihm ein Präfix zuweisen und dieses Präfix verwenden, wenn Sie die Elemente in der Quell-XML adressieren. Zum Beispiel kann das folgende Sheet:

XSL 1,0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:ns1="urn:crystal-reports:schemas:report-detail" 
exclude-result-prefixes="ns1"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

<xsl:template match="/ns1:CrystalReport"> 
    <DR> 
     <xsl:value-of select="ns1:Group/ns1:Group/ns1:Details/ns1:Section/ns1:Field[@Name='Field13']/ns1:Value"/> 
    </DR> 
</xsl:template> 

</xsl:stylesheet> 

wenn sie an einen wohlgeformten Eingangs wie angewendet:

XML

<CrystalReport xmlns="urn:crystal-reports:schemas:report-detail" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:crystal-reports:schemas:report-detail http://www.businessobjects.com/products/xml/CR2008Schema.xsd"> 
    <Group Level="1"> 
    <Group Level="2"> 
     <Details Level="3"> 
     <Section SectionNumber="1"> 
      <Field Name="Field5" FieldName="{ARTransaction.Transactions}"> 
      <FormattedValue>0.00</FormattedValue> 
      <Value>0.00</Value> 
      </Field> 
      <Field Name="Field15" FieldName="{ARTransaction.PostingDate}"> 
      <FormattedValue>8/1/2016</FormattedValue> 
      <Value>2016-08-01</Value> 
      </Field> 
      <Field Name="Field14" FieldName="{ARTransaction.AuditTrail}"> 
      <FormattedValue>2016083100154</FormattedValue> 
      <Value>2016083100154</Value> 
      </Field> 
      <Field Name="Field13" FieldName="{ARTransaction.JobN}"> 
      <FormattedValue>-25043</FormattedValue> 
      <Value>-25043</Value> 
      </Field> 
      <Field Name="Field11" FieldName="{Customer.CustomerName}"> 
      <FormattedValue>First Church of Christ</FormattedValue> 
      <Value>First Church of Christ</Value> 
      </Field> 
      <Field Name="Field7" FieldName="{ARTransaction.CustomerN}"> 
      <FormattedValue>13157</FormattedValue> 
      <Value>13157</Value> 
      </Field> 
      <Field Name="Field6" FieldName="{ARTransaction.InvoiceN}"> 
      <FormattedValue>25043</FormattedValue> 
      <Value>25043</Value> 
      </Field> 
      <Field Name="SalesmanN1" FieldName="{ARTransaction.SalesmanN}"> 
      <FormattedValue>22</FormattedValue> 
      <Value>22</Value> 
      </Field> 
     </Section> 
     </Details> 
    </Group> 
    </Group> 
</CrystalReport> 

wird Rückkehr:

Ergebnis

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

Hinweis: Wenn Sie eine XSLT 2.0 Prozessor verwenden, können Sie ein xpath-default-namespace Attribut deklarieren und mit dem Präfix abschaffen.

+0

Vielen Dank SO VIEL! Star!!!! – DPR

Verwandte Themen