2009-02-28 4 views
0

XML 데이터베이스에 사용자 데이터베이스를 저장하는 응용 프로그램이있어서 선택한 필드를 Filemaker로 내 보내야 내 클라이언트가 Filemaker에서 데이터를 마이닝 할 수 있습니다. XML 요소를 가져 오기 위해 XSLT 파일을 만들었지 만 요소를 가져올 방법을 찾지 못하는 것 같습니다. 이 문제를 해결하기위한 포인터가 크게 기대됩니다. 는 XML 파일의XML에서 Filemaker로 속성 및 요소를 가져 오는 방법은 무엇입니까?

예 : 지금까지이 사이트에서 지침에 따라 요소를 가져 관리했습니다

<?xml version="1.0" encoding="utf-8"?> 
<APPLICATION_NAME> 
    <USERS> 
    <USER> 
     <ID>15001</ID> 
     <USERNAME>Administrator</USERNAME> 
     <!-- other elements --> 
     <PROPERTYBAG> 
     <ITEM NAME="LastModifiedDate" VALUE="Fri, 05 Sep 2008 13:13:16 GMT"/> 
     <ITEM NAME="Registered" VALUE="5.9.2008 16:13:16"/> 
     <!-- other elements --> 
     </PROPERTYBAG> 
    </USER> 
    <!-- more users --> 
    </USERS> 
</APPLICATION_NAME> 

: 여기 http://edoshin.skeletonkey.com/2005/10/use_modular_xsl.html

그리고 그 요소는 아니지만을 가져 오는 XSLT이다 속성 :

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns="http://www.filemaker.com/fmpxmlresult"> 

<xsl:include href="FileMaker.xslt"/> 

<xsl:template match="/"> 
    <xsl:call-template name="TABLE"> 
    <xsl:with-param name="METADATA-FIELDS"> 
     <xsl:call-template name="FIELD"> 
     <xsl:with-param name="NAME" select="'ID'"/> 
     </xsl:call-template> 
     <xsl:call-template name="FIELD"> 
     <xsl:with-param name="NAME" select="'USERNAME'"/> 
     </xsl:call-template> 
     <xsl:call-template name="FIELD"> 
     <xsl:with-param name="NAME" select="'ISADMINISTRATOR'"/> 
     </xsl:call-template> 
     <xsl:call-template name="FIELD"> 
     <xsl:with-param name="NAME" select="'LastModifiedDate'"/> 
     </xsl:call-template> 
     <xsl:call-template name="FIELD"> 
     <xsl:with-param name="NAME" select="'Registered'"/> 
     </xsl:call-template> 
    </xsl:with-param> 

    <xsl:with-param name="RESULTSET-RECORDS"> 
     <xsl:for-each select="//USER"> 
     <xsl:call-template name="ROW"> 
      <xsl:with-param name="COLS"> 
      <xsl:call-template name="COL"> 
       <xsl:with-param name="DATA" select="ID"/> 
      </xsl:call-template> 
      <xsl:call-template name="COL"> 
       <xsl:with-param name="DATA" select="USERNAME"/> 
      </xsl:call-template> 
      <xsl:call-template name="COL"> 
       <xsl:with-param name="DATA" select="ACCOUNT/ISADMINISTRATOR"/> 
      </xsl:call-template> 

       <xsl:call-template name="COL"> 
       <xsl:with-param name="DATA" select="@Registered"/> 
      </xsl:call-template> 

       </xsl:with-param> 
     </xsl:call-template> 
     </xsl:for-each> 
    </xsl:with-param> 
    </xsl:call-template> 
</xsl:template> 

</xsl:stylesheet> 

답변

2

나는 당신이 여기에 필요한 것을 이해하고 있는지 잘 모르겠다. 이 경우 다음 항목이/@처럼 등록 사용하려고 할 경우
: - 이해 않은 경우
당신은

<xsl:call-template name="COL"> 
     <xsl:with-param name="DATA" select="@Registered"/> 
</xsl:call-template> 


편집을 사용하여

<ITEM NAME="LastModifiedDate" VALUE="Fri, 05 Sep 2008 13:13:16 GMT"/> 

의 값을받지 못하고있다 그래서 :

<xsl:call-template name="COL"> 
    <xsl:with-param name="DATA" select="PROPERTYBAG/ITEM[@NAME='Registered']/@VALUE"/> 
</xsl:call-template> 

원하는

:이 경우 다음 항목이/@과 같이 등록 사용하려고 할 경우

: 이름 속성 항목 요소의 값 속성은 ... 각 사용자 아래 PropertyBag은 요소 아래에 원래


을 등록 같습니다
<xsl:call-template name="COL"> 
    <xsl:with-param name="DATA" select="ITEM/@Registered"/> 
</xsl:call-template> 

는 각 사용자 아래에있는 ITEM ...

+0

불행하게도 그 때문에, 하나 내 문제를 작동하지 않습니다합니다. – Raynet

+0

오해의 소지가있는 답변 죄송합니다 - 해결,이 전혀 도움이되는지보십시오. – Dror

+0

감사합니다. 'PROPERTYBAG/ITEM [@ NAME ='등록 ']/@ VALUE'이 (가) 트릭을했습니다. * 한숨 * Filemaker가 XML 가져 오기에 관한 더 나은 문서를 갖고 싶습니다. XSLT를 사용합니다. 문서를 보려면 W3C를 참조하십시오. – Raynet

관련 문제