এক্সএমএল টেক্সট রূপান্তর


0

আমি একটি বড় ফাইল অংশ যা নীচের মত আছে:

<DataGroup xsi:type="ReportDataGroup">
<SmartReportTemplate DescriptionContentType="text/plain"
IsActive="true">
<Name ns1:translate="yes">Agent Summary</Name>
<Defaults type="defaults">
<Title ns1:translate="yes">Agent Summary Report</Title>
<Description ns1:translate="yes"></Description>

এখন আমি নিদর্শন জন্য চেক করতে হবে .*ns1:translate="yes">(.*)</.* এবং যখন পাওয়া যায় আমি এই লাইন নীচের অ্যারে থেকে স্ট্রিং যোগ করার প্রয়োজন। অ্যারে থেকে স্ট্রিং বরাবর আমি ট্যাগ যোগ করার প্রয়োজন <Name xml:lang="ja"> এবং </Name> স্ট্রিং কাছাকাছি অ্যারের থেকে পেতে হলে উপরে লাইন আছে </Name> এবং যোগ করার প্রয়োজন <Title xml:lang="ja"> এবং </Title> প্যাটার্ন মিলিত লাইন আছে যদি ট্যাগ </Title>

চূড়ান্ত আউটপুট মত চেহারা উচিত:

<DataGroup xsi:type="ReportDataGroup">
<SmartReportTemplate DescriptionContentType="text/plain"
IsActive="true">
<Name ns1:translate="yes">EM - perc</Name>
<Name xml:lang="ja">\u886815wEM - perce ~~~~~~~~~ ~~~~~~~~~ ~~\u5834</Name>
<Defaults type="defaults">
<Title ns1:translate="yes">AG - Rep</Title>
<Title xml:lang="ja">\u886815wAG - Rep ~~~~~~~~~ ~~~~~~~~~ ~~\u5834</Title>
<Description ns1:translate="yes"></Description>

যেখানে স্ট্রিং " \u886815wEM - perce ~~~~~~~~~ ~~~~~~~~~ ~~\u5834 "ইত্যাদি ... একটি অ্যারে আছে।

কোন ধারণা কিভাবে এই স্ক্রিপ্ট? আমি যখন লুপ ভিতরে একটি লুপ ভিতরে চেষ্টা করে লাইন দ্বারা ফাইল লাইন পড়া কিন্তু এটি একটি খুব দীর্ঘ সময় লাগে। আমি awk সঙ্গে চেষ্টা কিন্তু আমি awk ভিতরে বিশেষ চরিত্র অ্যারে অ্যাক্সেস করতে পারবেন না।


দেখ stackoverflow.com/questions/1732348/... নিয়মিত এক্সপ্রেশনগুলির মাধ্যমে এক্সএমএল সংশোধন করতে চাইলে কেউ আপনার সাথে রাগ পায় :-)
Daniel Andersson

কিভাবে অ্যারের বিষয়বস্তু প্রতিস্থাপন করতে ম্যাপ করা হয়? ধারাবাহিকভাবে (যেমন প্রতি মিলের একটি অ্যারে আইটেম, ঊর্ধ্বে গণনা?)।
kopischke

@ ড্যানিয়েল অ্যান্ডারসন: লিঙ্কযুক্ত উত্তর ব্যতীত মজার মূল্য, এমন পরিস্থিতিতে রয়েছে যেখানে একটি রেজেক্স যথেষ্ট হতে পারে - বিশেষ করে নিয়মিত এক্সপ্রেশন পুরোপুরি সক্ষম হিসাবে ম্যাচ (যদিও না পার্স ) ভাল গঠিত এক্সএমএল । এই ধরনের টাস্ক এবং একটি দ্রুত হ্যাক জন্য একটি শক্তসমর্থ আর্কিটেকচারের মধ্যে সব পার্থক্য। যতক্ষণ আপনি জানেন যে হ্যাকটি হ'ল (এটি সবচেয়ে ভাল এবং খারাপভাবে সবচেয়ে খারাপ সময়ে), এটি একটি দ্রুত স্ক্রিনটি টেনে আনতে সহজ সমাধান হতে পারে, এটি একটি স্ক্রিপ্টে XSLT বা কাস্টম এক্সএমএল প্রসেসিংয়ের তুলনায় সহজ।
kopischke

উত্তর:


0

যদি একটি আংশিক সমাধান vim গ্রহণযোগ্য

:%s/\(.*\(Name\|Title\).*ns1:translate="yes">.*<\/.*\)/<\2 xml:lang="ja">\\u886815wEM - perce \~\~\~\~\~\~\~\~\~ \~\~\~\~\~\~\~\~\~ \~\~\\u5834<\/\2>\r\1/g

পলায়নপর \ দ্বারা \/ এবং ~ দ্বারা \~

\(Name\|Title\) দুটি নিদর্শন মেলা এবং তাদের সঙ্গে স্মরণ করতে পারবেন \2 এখানে.

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