এক্সএইচটিএমএল আউটপুটে এসভিজি যোগ করতে নথির সাথে কপি-অফ ব্যবহার


113

আমার এক্সএমএল প্রক্রিয়া করার সময়, আমি hrefনিম্নলিখিত লাইনটি দিয়ে আমার আউটপুট এইচটিএমএলে সরাসরি একটি গুণ থেকে রেফারেন্স থাকা একটি এসভিজি ফাইল অনুলিপি করার চেষ্টা করছি :

 <xsl:copy-of copy-namespaces="yes" select="document(@href)"/>

copy-namespacesপ্রয়োজনীয় যেহেতু ডিফল্ট মান "হ্যাঁ" আসলে করা উচিত হবে না, কিন্তু আমি প্রায় কিনা বা না আমি এটা চেষ্টা করেছি প্রশ্ন প্রতিরোধ এটা জুড়েছি।

ফাইলগুলি এইচটিএমএলে অনুলিপি করা হয়েছে, তবে যেকোন নেমস্পিডের উপাদানগুলি হোজেড। উদাহরণস্বরূপ, একটি ফাইল যা অনুলিপি করার আগে এই জাতীয় দেখাচ্ছে:

  <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <dc:title/>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g transform="translate(-519.21143,-667.79077)" id="layer1">
    <image xlink:href="data:image/png;base64

এর পরে দেখে মনে হচ্ছে:

  <_0:RDF xmlns:_0="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <_0:Work xmlns:_0="http://creativecommons.org/ns#" about="">
        <_0:format xmlns:_0="http://purl.org/dc/elements/1.1/">image/svg+xml</_0:format>
        <_0:type xmlns:_0="http://purl.org/dc/elements/1.1/" resource="http://purl.org/dc/dcmitype/StillImage"/>
        <_0:title xmlns:_0="http://purl.org/dc/elements/1.1/"/>
      </_0:Work>
    </_0:RDF>
  </metadata>
  <g id="layer1" transform="translate(-519.21143,-667.79077)">
    <image href="data:image/png;base64

hrefচিত্র উপাদানটির মানটির সাথে থাকা অনুপস্থিত xlink নেমস্পেসটি বিশেষত সমস্যাযুক্ত।

কোনও ব্যাখ্যা ছাড়াই এসভিজি ফাইলে পড়ার জন্য আমি কীভাবে এটি আলাদাভাবে করতে পারি সে সম্পর্কে কোনও চিন্তাভাবনা?

আমি একটি সমাধান খুঁজে পেয়েছি যা "কাজ করে" তবে এটি একটি হ্যাক এবং আমি আরও মার্জিত কিছু চাই:

<xsl:template name="topic-image-svg">
    <!-- Generate tags to embed SWFs -->
    <xsl:element name="div">
      <xsl:if test="@width">
        <xsl:attribute name="width">
          <xsl:value-of select="@width"/>
        </xsl:attribute>
      </xsl:if>
      <xsl:if test="@height">
        <xsl:attribute name="height">
          <xsl:value-of select="@height"/>
        </xsl:attribute>
      </xsl:if>     
        <xsl:apply-templates select="document(@href)" mode="svg"/>
    </xsl:element>
  </xsl:template>

  <xsl:template match="*" mode="svg">
    <xsl:copy copy-namespaces="yes">
      <xsl:for-each select="@*">
        <xsl:choose>
          <xsl:when test="self::node()[name() = 'xlink:href']">
            <xsl:attribute name="xlink:href"><xsl:value-of select="."></xsl:value-of></xsl:attribute>
          </xsl:when>
          <xsl:otherwise>
            <xsl:copy></xsl:copy>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:for-each>
     <xsl:apply-templates mode="svg"></xsl:apply-templates>
    </xsl:copy>
  </xsl:template>

5
আপনার স্টাইলশীটে সমস্ত ট্যাগের নাম অন্তর্ভুক্ত রয়েছে?
ফিলিএনজে

6
এসভিজি নামস্থানটি কি সু-গঠিত? আপনি যে খণ্ডটি দেখান তাতে উপসর্গ 'xlink' এর জন্য একটি বাইন্ডিং অন্তর্ভুক্ত থাকে না।
সিএম স্পারবার্গ-ম্যাককুইন

3
আপনি কোন এক্সএসএলটি ২.০ প্রসেসর ব্যবহার করেন? আপনি কি আমাদের ন্যূনতম তবে সম্পূর্ণ নমুনাগুলি পোস্ট করতে পারেন যাতে সমস্যাটি আমাদের পুনরুত্পাদন করতে দেয়? আপনি কোন এক্সএসএলটি আউটপুট পদ্ধতি ব্যবহার করেন?
মার্টিন হোনেন

15
প্রথম দর্শনে এটি আপনার এক্সএসএলটি প্রসেসরের কোনও বাগের মতো দেখায়। আপনি যখন এইচটিএমএল ডকুমেন্টে এটি অনুলিপি করছেন তখন আমার সন্দেহগুলি জাগ্রত হয়। আপনি যদি এটি কোনও এইচটিএমএল ডিওমে যুক্ত করে থাকেন তবে HTML DOM নামস্থান-বান্ধব নয়, তাই সব ধরণের জিনিসই ঘটতে পারে। তবে আপনার শিরোনামটি "xHTML" বলে। সুতরাং আমি মনে করি আমাদের আরও জানা দরকার: আপনি কোন এক্সএসএলটি প্রসেসরটি ব্যবহার করছেন এবং আপনি এটি কীভাবে চালাচ্ছেন?
মাইকেল কে

1
আপনি কি আপনার কোড এবং বাস্তবায়ন ভাগ করে নিতে চান? আমি কমপক্ষে এটি পুনরুত্পাদন করতে আগ্রহী।
জেরার্ড ভ্যান হেলডেন

উত্তর:


1

আমি মনে করি আপনি এই এক্সএসএলটি অপারেশনের কারণটি পেয়েছেন:

http://www.w3schools.com/xsl/el_namespace-alias.asp

যা আউটপুট উত্পন্ন না হওয়া অবধি আপনার ম্যানলেগড নেমস্পেসগুলি অক্ষত রেখে দেয়, যখন নেমস্পেস রূপান্তরটি হয়ে যায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.