2017-11-21 4 views
0

オブジェクトxmlns ...はXMLのルート要素です。それをXSLTで宣言する方法は? <xsl:template match="objects">は機能しません。ルート要素オブジェクトには、処理したいすべてのXMLで異なるタイムスタンプが最後にあります。XMLのルート要素が非常に長い場合にXSLで<xsl:template match>を宣言する方法

<?xml version="1.0" encoding="UTF-8"?> 
<objects xmlns="33a8cae1-a9fa-4655-8c3d-b71241bbc99b" base-schema="179" user-schema="207" timestamp="2017-11-21T16:07:50+01:00"> 
    <objekttyp> 
    <_version>19</_version> 
    <_id>364</_id> 
    <_objecttype>objekttyp</_objecttype> 
    <_system_object_id>458</_system_object_id> 
    <_global_object_id>[email protected]</_global_object_id> 
    <_uuid>4dfa0f0c-2172-4fa8-be83-34d79ac58cc1</_uuid> 
    <_mask>objekttyp__all_fields</_mask> 
    <_last_modified>2017-08-17T16:43:28Z</_last_modified> 

答えて

1

長さは問題ではありません。 あなたのXMLが細かい不特定の名前空間を、持っていますが、あなたはXSLにする必要がありますとき、あなたはそれを参照、あなたはその名前空間を宣言する必要があります(あなたが任意の接頭辞を使用することができます)

<?xml version="1.0" encoding="UTF-8"?> 
<objects xmlns="33a8cae1-a9fa-4655-8c3d-b71241bbc99b" base-schema="179" user-schema="207" timestamp="2017-11-21T16:07:50+01:00"> 
    <objekttyp> 
    <_version>19</_version> 
    <_id>364</_id> 
    <_objecttype>objekttyp</_objecttype> 
    <_system_object_id>458</_system_object_id> 
    <_uuid>4dfa0f0c-2172-4fa8-be83-34d79ac58cc1</_uuid> 
    <_mask>objekttyp__all_fields</_mask> 
    <_last_modified>2017-08-17T16:43:28Z</_last_modified> 
    </objekttyp> 
</objects> 

のxmlnsに注意してください。 :ns = "33a8cae1-a9fa-4655-8c3d-b71241bbc99b"名前空間はXMLと同じ文字列を指します。

XSLのすべてのXPath文にns:namespaceが追加されています。

<?xml version="1.0" ?> 
<xsl:stylesheet version="1.0" 
xmlns:ns="33a8cae1-a9fa-4655-8c3d-b71241bbc99b" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
> 

<xsl:variable name='objects' select='//ns:objects'/> 

<xsl:template match="/"> 
    <xsl:for-each select='$objects'> 
     <object> 
      <xsl:for-each select='ns:objekttyp'> 
       <xsl:attribute name='lastmodified'><xsl:value-of select='ns:_last_modified'/></xsl:attribute> 
      </xsl:for-each> 
     </object> 
    </xsl:for-each> 
</xsl:template> 

</xsl:stylesheet> 

<?xml version="1.0" encoding="utf-16"?> 
<object lastmodified="2017-08-17T16:43:28Z" xmlns:ns="33a8cae1-a9fa-4655-8c3d-b71241bbc99b"> 
</object> 
を作成します
関連する問題