Domanda

Ho questo file xml

<?xml version="1.0" encoding="UTF-8"?>
<bo:C837ClaimParent xsi:type="bo:C837ClaimParent"     
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xmlns:bo="http://somelongpathHere/process/bo">
<claimAux>
...
</claimAux>
<enterpriseClaim>
...
    <patientAccountNumber>data to capture here</patientAccountNumber>
</enterpriseClaim>

Devo abbinare i dati all'interno di < patientAccountNumber > ;, che si trova all'interno di < enterpriseClaim > ;, che si trova all'interno di < bo: C837ClaimParent gt;     Ho provato tutti i valori che riesco a pensare su xsl: template match e non riesco a trovare quel nodo, o non lo trova, o corrisponde all'intero file xml, il mio file xsl ha il seguente aspetto:

    <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="2.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
    <html>
....
<div>
  <xsl:value-of select="C837ClaimParent/enterpriseClaim/patientAccountNumber" /></div>

cosa devo specificare sul mio xsl: template e sul mio xsl: value-of?

inoltre, per questo stesso file corrisponderò ad altri valori, tutto è all'interno del nodo principale < bo: C837ClaimParent, quindi cosa devo usare per poter abbinare in modo efficiente i nodi in tutto il mio file?

È stato utile?

Soluzione

Sembra che manchi una dichiarazione dello spazio dei nomi per il tuo prefisso bo. Questo spazio dei nomi probabilmente dovrà apparire nella tua soluzione a meno che tu non usi local-name()

modifica (dopo la comparsa dello spazio dei nomi!

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:bo="http://somelongpathHere/process/bo">
    <xsl:output method="xml" version="2.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
    <html>
....
<div>
  <xsl:value-of select="bo:C837ClaimParent/enterpriseClaim/patientAccountNumber" /></div>

Sei sicuro che enterpriseClaim si trova in uno spazio dei nomi diverso da C837ClaimParent?

Altri suggerimenti

<xsl:stylesheet ... xmlns:bo="http://www.bo.org">
   ...
   <xsl:value-of select="/bo:C837ClaimParent/enterpriseClaim/patientAccountNumber" />
   ...
</xsl:stylesheet>

In generale, il mio consiglio sarebbe di leggere su spazi dei nomi in XML e XPath.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top