আমি ক্রোমে এক্সএসএলটি কীভাবে কাজ করতে পারি?


88

আমার এখানে একটি এক্সএমএল ডকুমেন্ট রয়েছে যা সংশ্লিষ্ট এক্সএসএল ফাইলের সাথে পরিবেশন করা হয় । রূপান্তরটি জাভাস্ক্রিপ্ট ছাড়াই ক্লায়েন্ট-সাইডে কার্যকর করা হবে।

এটি আই (শক হরর) এ দুর্দান্ত কাজ করে তবে গুগল ক্রোমে কেবল নথির পাঠ্য নোডগুলি প্রদর্শিত হয় lays

আমি জানি যে ক্রোমে ক্লায়েন্ট-সাইড এক্সএসএল করা সম্ভব, যেমন আমি এর উদাহরণগুলি দেখেছি তবে আমি নিজে এখনও এই সাফল্যের প্রতিরূপ তৈরি করতে সক্ষম হইনি

আমি কি ভুল করছি?


সমাধান পোস্ট করা ভাল হবে, যখন আপনি এটি জানেন। আমি সত্যিই গুরুতর কোনও কিছুর জন্য ক্রোম ব্যবহার করি নি - মনে হয় এটি আমার কাছে গুগল-খেলনা। আপনার এক্সএসএলটি ক্লায়েন্ট-সাইড সঞ্চালনের দরকার কেন?
দিমিত্রে নোভাচাচেভ

আমি না। আমি শুধু ভেবেছিলাম এটা খুব সুন্দর ঝরঝরে হবে। এবং আমি এখনও জানতে চাই কেন কিছু জিনিস ক্রোমে কাজ করে তবে আমার তা হয় না। ওহ, এবং আইই ব্যবহারকারীদের জন্য, পৃষ্ঠার নৃশংস রেনবো স্টাইলিংয়ের জন্য দুঃখিত sorry
এরিক

12
আমার জন্য ক্রোম কেবলমাত্র http: // এর মাধ্যমে এক্সএমএল খোলার সময় রূপান্তর করতে পারে, ফাইল: // এর মাধ্যমে কাজ করার পরে এটি কাজ করে না, এক্সএমএলএনস-অ্যাট্রিবিউটটি আমার জন্য কোনও তাত্পর্য তৈরি করে না।
জারোস্লাভ জারুবা

এই বাগটি এখানে উল্লেখ করা হয়েছে
ফ্ল্যাভিও সিজন

4
এর জন্য প্রকৃত ক্রোম বাগটি কোডগ্রহীতায়
গ্রান্ট পিটারস

উত্তর:


116

এরিকের নীচের অন্য উত্তরগুলি ভুল। তিনি যে নামস্পেসের ঘোষণাপত্রটি উল্লেখ করেছিলেন তাতে সমস্যাটির কোনও সম্পর্ক নেই।

এটি কাজ না করার আসল কারণটি নিরাপত্তা সংক্রান্ত উদ্বেগগুলির কারণে (সিএফ ইস্যু 4197 , ইস্যু 111905) )।

এই দৃশ্যটি কল্পনা করুন:

  1. আপনি ডাউনলোড করা একটি সংযুক্তি হিসাবে একটি ওয়েব পৃষ্ঠাযুক্ত আক্রমণকারী থেকে একটি ইমেল বার্তা পান।

  2. আপনি আপনার ব্রাউজারে এখন স্থানীয় ওয়েব পৃষ্ঠা খুলুন।

  3. স্থানীয় ওয়েব পৃষ্ঠা এমন একটি তৈরি করে <iframe>যার উত্সটি https://mail.google.com/mail/

  4. আপনি জিমেইলে লগ ইন করেছেন বলে ফ্রেমটি আপনার ইনবক্সে থাকা বার্তাগুলি লোড করে।

  5. স্থানীয় ওয়েব পৃষ্ঠা অ্যাক্সেসের জন্য জাভাস্ক্রিপ্ট ব্যবহার করে ফ্রেমের সামগ্রীগুলি পড়ে frames[0].document.documentElement.innerHTML। (একটি অনলাইন ওয়েব পৃষ্ঠা এই পদক্ষেপটি সক্ষম করতে পারবে না কারণ এটি কোনও নন-জিমেইল উত্স থেকে আসে; একই-উত্স নীতিটি পড়তে ব্যর্থ হতে পারে))

  6. স্থানীয় ওয়েব পৃষ্ঠাটি আপনার ইনবক্সের সামগ্রীগুলি <textarea>একটিতে রাখে এবং আক্রমণকারীটির ওয়েব সার্ভারে একটি ফর্ম POST এর মাধ্যমে ডেটা জমা দেয়। এখন আক্রমণকারী আপনার ইনবক্সে হয়েছে , যা স্প্যামিং জন্য দরকারী হতে পারে অথবা চুরি শনাক্ত করতে পারে।

ক্রোম ব্যবহার করে খোলার স্থানীয় ফাইলগুলিতে বিধিনিষেধ তৈরি করে উপরের দৃশ্যের ব্যর্থতা । এই সীমাবদ্ধতাগুলি কাটিয়ে উঠতে, আমরা দুটি সমাধান পেয়েছি:

  1. --allow-file-access-from-files পতাকা সহ ক্রোম চালানোর চেষ্টা করুন । আমি নিজে এটি পরীক্ষা করে দেখিনি, তবে এটি যদি কাজ করে তবে আপনার সিস্টেমটি এখন উল্লিখিত ধরণের পরিস্থিতিতেও ঝুঁকির মধ্যে পড়বে।

  2. এটি কোনও হোস্টে আপলোড করুন, এবং সমস্যার সমাধান।


4
এটি সত্য, তবে এটি সমস্যার একমাত্র কারণ ছিল না। আমি কিছুক্ষণের জন্য "বাগ" প্রতিবেদনটি অনুসরণ করছি। যাইহোক, আমি এটি xmlnsবৈশিষ্ট্য ব্যতীত সার্ভার-সাইডে কাজ করতে পারি না । এটি ক্রোমের নতুন সংস্করণগুলিতে পরিবর্তিত হতে পারে।
এরিক

4
@ এরিক ঠিক আছে এটি আপনার সমস্যার উত্তর নাও হতে পারে তবে এটি আপনার প্রশ্নের সঠিক উত্তর। এই পৃষ্ঠায় দর্শকদের মন্তব্য দ্বারা বিচার করে, আমরা দেখতে পাচ্ছি যে উত্তরটি চিহ্নিত করা হয়েছিল তা তাদের সমস্যাগুলি সমাধান করছে না। (অন্যথায় সমাধানের জন্য তাদের কেন অন্য 6 টি উত্তর
উত্তোলন

4
@ পেসারিয়র: এটি আমার প্রশ্নের সঠিক উত্তর নয়। আমার প্রশ্নটি জিজ্ঞাসা করছিল যে আমার সার্ভারে হোস্ট করা একাধিক দস্তাবেজ কেন সঠিকভাবে রূপান্তরিত হচ্ছে না। সুরক্ষা সমস্যাটি যদিও জানা দরকার তবে এই বিশেষ প্রশ্নের সাথে প্রাসঙ্গিক নয়।
এরিক

4
@ পেসিয়ার ধন্যবাদ, ভাল --allow-file-access-from-filesকাজ করে।
ইবনে সা Saeed

4
ফাইল: // এ ক্রোম বিধিনিষেধগুলি সরল বোকা এবং দেবগণ একই-উত্স নীতিটি সঠিক উপায়ে প্রয়োগ করতে খুব অলস (ফায়ারফক্স যেমন করে) এবং এটি লজ্জাজনক কারণ ক্রোম আমার প্রতিদিনের ব্রাউজার।
v1nce

14

লেখার সময় ক্রোমে একটি বাগ ছিল যা xmlnsরেন্ডারিং ট্রিগার করতে একটি বৈশিষ্ট্য প্রয়োজন :

<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" ... >

কোনও সার্ভার থেকে এক্সএমএল ফাইল পরিবেশন করার সময় আমি যে সমস্যাটি চালাচ্ছিলাম ।


যদি আমার বিপরীতে, আপনি একটি file:///ইউআরএল থেকে এক্সএমএল ফাইলটি দেখছেন , তবে উল্লিখিত সমাধানগুলি হ'ল --allow-file-access-from-filesআপনি যা চান তা


4
গুড ফাইন্ড! এই জন্য একটি বাগ পূরণ করুন।
মোহাম্মদ মনসুর

4
@ পিটার: এটি আপনার ইনপুট ডকুমেন্টের উপর নির্ভর করে। এক্সএসএলটি স্পেকটি এখানে বেশ স্পষ্ট এবং আইই খুব ক্ষমাশীল। যদি ইনপুটটি বৈধ এক্সএইচটিএমএল হয় তবে এর একটি নেমস্পেসের ঘোষণা আছে। এক্সপ্রেসটি এই ইনপুট নথিতে কোনও কিছু সনাক্ত করতে, আপনাকে অবশ্যই নামের স্থানটি নির্ধারণ করতে হবে। এটি অবশ্য ডিফল্ট নেমস্পেস (তবে সবচেয়ে সহজ) ব্যবহার করার প্রয়োজন নেই।
আবেল

10
@ এরিক: আমার উত্তরটি দেখুন, কোনও অপরাধ নেই, তবে আপনার উত্তরটি ভুল।
পেসারিয়ার

4
এটি উত্তর নয় (সমাধানও নয় এবং "..." অবশ্যই কিছুটা অস্পষ্ট), পেসারিয়র সঠিক।
রেডগ্লাইফ

এটি ভুল। যে হতাশার প্রয়োজন নেই। এটি সংস্করণ নম্বর চাইছে।
ইউডিআইডি

7

Chrome এর উপর ভিত্তি করে সমস্যাটি xML নেমস্পেসের নয় isxmlns="http://www.w3.org/1999/xhtml" । নেমস্পেস বৈশিষ্ট্য ব্যতীত, এটি IE এর সাথেও কাজ করবে না।

সুরক্ষা সীমাবদ্ধতার কারণে, আপনি --allow-file-access-from-filesক্রোম শুরু করার সময় আপনাকে পতাকাটি যুক্ত করতে হবে । আমি মনে করি লিনাক্স / * স্নো ব্যবহারকারীদের টার্মিনাল মাধ্যমে কিন্তু Windows ব্যবহারকারীদের জন্য সহজে তা করতে পারে, আপনি খোলা আছে বৈশিষ্ট্য এর ক্রোম শর্টকাট এবং নীচের হিসাবে লক্ষ্য গন্তব্য এটা; যোগ করুন

ডান ক্লিক করুন -> সম্পত্তি -> লক্ষ্য

এখানে চিত্র বর্ণনা লিখুন

আমি আমার মেশিনে যে পতাকাগুলি ব্যবহার করি তা এখানে একটি নমুনা পূর্ণ পথ;

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files

আমি আশা করি এই ধাপে ধাপটি দেখানো উইন্ডোজ ব্যবহারকারীদের সমস্যার জন্য সহায়তা করবে, এই কারণেই আমি এই পোস্টটি যুক্ত করেছি।


6

লোকালহোস্টেও আমার একই সমস্যা ছিল। ইন্টারনেটে চারপাশে ছুটির উত্তর খুঁজছেন এবং আমি যুক্ত করা --allow-file-access-from-filesকাজ অনুমোদিত। আমি ম্যাক এ কাজ করি, তাই আমার জন্য আমাকে টার্মিনাল দিয়ে যেতে হয়েছিলsudo /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --allow-file-access-from-files এবং আপনার পাসওয়ার্ডটি প্রবেশ করতে হবে (যদি আপনার কাছে থাকে)।

আরেকটি ছোট জিনিস - আপনি .xML ফাইলটি আপনার .xsl ফাইলের রেফারেন্সটি নীচে যুক্ত না করলে কিছুই কাজ করবে না <?xml-stylesheet type="text/xsl" href="<path to file>"?>। আর একটি ছোট জিনিস যা আমি তাৎক্ষণিকভাবে বুঝতে পারি নি - আপনি ব্রাউজারে আপনার .xML ফাইলটি খোলেন, কোনও .xsl নেই।


4

এক্সএমএল ফাইল (মানক পিআই দ্বারা শুরু করে: তবে এটি কার্যকর হয় না)

<?xml-stylesheet type="text/xsl" href="..."?>

এক্সএসএল স্টাইলশিট উল্লেখ করার জন্য) "অ্যাপ্লিকেশন / এক্সএমএল" হিসাবে পরিবেশন করা হয়। সেক্ষেত্রে, ক্রোম এখনও রেফারেন্সযুক্ত এক্সএসএল স্টাইলশিট ডাউনলোড করবে, তবে কিছুই রেন্ডার হবে না, কারণ এটি নথিভুক্তভাবে "অ্যাপ্লিকেশন / এক্সএমএল" থেকে "নথি" (! ??) এবং "পাঠ্য / এক্সএসএল" "তে রূপান্তর করবে স্টাইলশিট "(! ??), এবং তারপরে এক্সএমএল নথিটি রেন্ডার করার চেষ্টা করবে যেন এটি কোনও এটিএমএল (5) নথি, প্রথমে এটির এক্সএসএলটি প্রসেসরটি চালিয়ে না ফেলে। এবং স্ক্রিনে মোটেও কিছুই প্রদর্শিত হবে না (যার লিখিত সামগ্রীটি পূর্বের পৃষ্ঠাটি থেকে XML পৃষ্ঠাটি রেফারেন্স করা দেখিয়েছিল এবং আইকনটি স্পিনিং অবিরত করবে, যেমন ডকুমেন্টটি কখনই পুরোপুরি লোড হয় নি।

আপনি Chrome কনসোলটি পুরোপুরি ব্যবহার করতে পারেন, এটি দেখায় যে সমস্ত সংস্থান লোড হয়েছে তবে সেগুলি ভুল ব্যাখ্যা করা হয়েছে।

হ্যাঁ, ক্রোম বর্তমানে কেবলমাত্র এক্সএমএল ফাইলগুলি রেন্ডার করে (এর optionচ্ছিক শীর্ষস্থানীয় এক্সএসএল স্টাইলশিট ঘোষণার সাথে), কেবলমাত্র যদি এটি "পাঠ্য / এক্সএমএল" হিসাবে পরিবেশন করা হয় তবে ক্লায়েন্ট-সাইড রেন্ডার করা এক্সএমএল হিসাবে এটি "অ্যাপ্লিকেশন / এক্সএমএল" হিসাবে নয় এক্সএসএল ঘোষণা।

এক্সএমএল ফাইলগুলির জন্য "পাঠ্য / এক্সএমএল" বা "অ্যাপ্লিকেশন / এক্সএমএল" হিসাবে পরিবেশন করা এবং এতে কোনও এক্সএসএল স্টাইলশিট ঘোষণা নেই, ক্রোমকে এখনও এটি ডিওএম ট্রি হিসাবে রেন্ডার করতে একটি ডিফল্ট স্টাইলশিট ব্যবহার করা উচিত, বা কমপক্ষে তার পাঠ্য উত্স হিসাবে। তবে এটি তা করে না এবং এখানে আবার এটি এটি HTML হিসাবে রেন্ডার করার চেষ্টা করে এবং তাত্ক্ষণিকভাবে অনেকগুলি স্ক্রিপ্টগুলিতে বাগগুলি (একটি পূর্বনির্ধারিত অভ্যন্তরীণ সহ) যেটি লোড ইভেন্টগুলি পরিচালনা করার জন্য "ডকুমেন্ট.বিডি" এ অ্যাক্সেস করার চেষ্টা করে এবং কিছু জাভাস্ক্রিপ্ট ইনজেক্ট করে এটি হ্যান্ডলার

সাইটের উদাহরণ যা Chrome এ প্রত্যাশার মতো (কমন লিস্প ডকুমেন্টেশন) কাজ করে না, তবে IE তে কাজ করে যা ক্লায়েন্ট-সাইড এক্সএসএলটি সমর্থন করে:

http://common-lisp.net/project/bknr/static/lmman/toc.html

উপরের এই সূচক পৃষ্ঠাটি সঠিকভাবে প্রদর্শিত হয়েছে, তবে সমস্ত লিঙ্কগুলি এক্সএলএল ডকুমেন্টগুলিতে একটি এক্সএসএল স্টাইলশিট বিদ্যমান নথিটিতে একটি এক্সিকিএল ডকুমেন্টগুলিতে চালিত হবে এবং অধ্যায়গুলি ডাউনলোড করতে সমস্যা ভেবে আপনি অনির্দিষ্টকালের জন্য অপেক্ষা করতে পারেন। ডকুমেন্টেশনটি পড়তে আপনি যা করতে পারেন তা হ'ল কনসোলটি খোলা এবং সংস্থানসমূহ ট্যাবে উত্স কোডটি পড়া।


3

আমি যতটা কাছেই বলতে পারি ক্রোম শিরোনামটি সন্ধান করছে

সামগ্রী-প্রকার: পাঠ্য / এক্সএমএল

তারপরে এটি কাজ করে --- অন্যান্য পুনরাবৃত্তি ব্যর্থ হয়েছে।

আপনার ওয়েব সার্ভার এটি সরবরাহ করছে তা নিশ্চিত করুন। এটি ফাইল: // ইউআরআই এক্সএমএল ফাইলের জন্য কেন ব্যর্থ হয় তাও ব্যাখ্যা করে।


2

পরীক্ষা করে দেখুন http://www.aranedabienesraices.com.ar

এই সাইটটি এক্সএমএল / এক্সএসএলটি ক্লায়েন্ট-সাইড দ্বারা নির্মিত। এটি আই 6-7-8, এফএফ, ও, সাফারি এবং ক্রোমে কাজ করে। আপনি কি HTTP শিরোনাম সঠিকভাবে প্রেরণ করছেন? আপনি কি একই-উত্স নীতি সম্মান করছেন?


আমার উত্তর দেখুন , আমি এটি সমাধান করেছি। ক্রোমের জন্য একটি xmlnsগুনের প্রয়োজন বলে মনে হচ্ছে ।
এরিক

4
আমি তাই মনে করি না. রূপান্তর সম্পাদন করতে, ক্রোমের ডিফল্ট নেমস্পেসটি এক্সএইচটিএমএল নেমস্পেসে সেট করার দরকার নেই। এক্সএইচটিএমএল রেন্ডার করতে অবশ্যই এটি অবশ্যই যথাযথ এক্সএইচটিএমএল প্রয়োজন। আপনি জিনিস মিশ্রিত করা হয়।

উপরে বর্ণিত সাইটটি এক্সএমএল দিয়ে নয় তবে এক্সএইচটিএমএল দিয়ে নির্মিত। দুটি একেবারে এক নয় (উভয়ই এক্সএমএল তবে একটিটি এইচটিএমএল এবং অন্যটি নয়)।
জার্সিবয়

1

আমি ফাইলটি wwwroot এ রাখার চেষ্টা করেছি । সুতরাং Chrome এ পৃষ্ঠাটি অ্যাক্সেস করার সময়, এই ঠিকানাটি স্থানীয় হোস্ট / আপনার পৃষ্ঠা.এসএমএল


1

এরিক যা বলেন তা সঠিক।

এক্সএসএল-তে, এক্সএসএল এর জন্য: স্টাইলশীট ট্যাগে নিম্নলিখিত বৈশিষ্ট্য রয়েছে

সংস্করণ = "1.0" xMLns: xsl = "http://www.w3.org/1999/XSL/Transform" xMLns = "http://www.w3.org/1999/xhtml"

এটি ক্রোমে সূক্ষ্মভাবে কাজ করে।


1

আমি এটি পরীক্ষা করে শুরু করেছি এবং স্থানীয় ফাইল / ক্রোম সুরক্ষা ইস্যুতে ছুটেছি। একটি খুব সাধারণ কর্মক্ষেত্রটি এক্সএমএল এবং এক্সএসএল ফাইলকে বলা হয়, বলুন, ড্রপবক্স পাবলিক ফোল্ডার এবং উভয় ফাইলের লিঙ্ক পেতে। এক্সএসএল ট্রান্সফর্মের লিঙ্কটি এক্সএমএল হেডে রাখুন। ক্রোম এবং আইটি ওয়ার্কসে এক্সএমএল লিঙ্কটি ব্যবহার করুন!


1

8 বছর পরে পরিস্থিতি কিছুটা পরিবর্তন করা হয়।

আমি অন্যান্য পরামিতি ছাড়াই গুগল ক্রোমের একটি নতুন অধিবেশন খুলতে এবং 'ফাইল:' স্কিমাকে অনুমতি দিতে অক্ষম।

ম্যাকোজে আমি করি:

open -n -a "Google Chrome" --args \
    --disable-web-security \               # This disable all CORS and other security checks
    --user-data-dir=$HOME/fakeChromeDir    # This let you to force open a new Google Chrome session

এই যুক্তি ছাড়া আমি স্থানীয় মধ্যে XSL স্টাইলশিট পরীক্ষা করতে অক্ষম।

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