HXPIPE(1) HTML-XML-utils HXPIPE(1)
نام (NAME)
hxpipe - تبدیل ساختار HTML یا XML به فرمت خطی مناسب پایپ
خلاصه دستور (SYNOPSIS)
hxpipe [ -l ] [ -H ] [ -- ] [ file-or-URL ]
توضیحات (DESCRIPTION)
دستور hxpipe یک فایل HTML یا XML را تجزیه کرده و یک نمایش خطمحور از آن
ارائه میدهد که برای پردازشهای بعدی با AWK یا ابزارهای مشابه بسیار مناسب
است. این قالب مشابه خروجی ESIS (مجموعه اطلاعات ساختار عناصر) است که
توسط nsgmls/onsgmls تولید میشود.
عملیات معکوس، یعنی تبدیل مجدد به ساختار نشانهگذاری، توسط برنامه
hxunpipe انجام میشود.
قالب خروجی به شرح زیر است:
توضیحات (کامنتها) به صورت زیر در خروجی نمایش داده میشوند:
*comment
به این معنا که یک سطر با "*" شروع شده و متن کامنت در ادامه آن
میآید. کاراکترهای رفتن به خط بعد (Line feed)، بازگشت به
ابتدای خط (Carriage return) و تب (Tab) در متن به ترتیب به
صورت "\n"، "\r" و "\t" نوشته میشوند. متنی که شبیه به یک
موجودیت کاراکتری عددی (Numerical character entity) باشد، با
جایگزینی "&" با "\" نوشته میشود. سطر با یک کاراکتر رفتن به خط
بعد پایان مییابد.
توجه داشته باشید که onsgmls کامنتها را با شروع از "_" به جای
"*" خروجی میدهد و "&" را در موجودیتهای کاراکتری عددی با "\"
جایگزین نمیکند (و به صورت پیشفرض کامنتها را به کلی نادیده
میگیرد).
دستورالعملهای پردازشی (Processing instructions) به صورت زیر
خارج میشوند:
?processing instruction
یعنی یک سطر با "?" شروع شده و متن دستورالعمل در ادامه آن قرار
میگیرد. نویسههای خاص متن نیز مانند بخش کامنتها اسکیپ میشوند
(به بالا مراجعه کنید).
شناسههای DOCTYPE به یکی از اشکال زیر در خروجی میآیند:
!root "-//foo//DTD bar//EN" http://example.org/dtd
!root "-//foo//DTD bar//EN"
!root "" http://example.org/dtd
!root ""
به ترتیب برای: یک DOCTYPE همراه با (۱) هر دو شناسه عمومی
(Public) و سیستمی (System)، (۲) فقط شناسه عمومی، (۳) فقط
شناسه سیستمی، یا (۴) هیچکدام از این دو. به عبارت دیگر، یک سطر
منفرد با "!" شروع میشود، به دنبال آن یک فاصله و یک رشته
نقلقولشده (که ممکن است خالی باشد)، و سپس در صورت وجود یک
فاصله و متنی دلخواه میآید. به وجود علامتهای نقلقول برای شناسه
عمومی و نبود آن برای شناسه سیستمی توجه کنید.
تگ آغازین (Start tag) به صورت زیر در خروجی قرار میگیرد:
Aatt1 CDATA value1
Aatt2 CDATA value2
(elt
به این صورت که شامل صفر یا چند سطر برای ویژگیها (Attributes)
و یک سطر برای نوع عنصر است. هر سطرِ مربوط به ویژگی با "A" شروع
میشود و به دنبال آن نام ویژگی، یک فاصله، عبارت ثابت "CDATA"،
یک فاصله دیگر و سپس مقدار ویژگی میآید. نویسههای خاص مقدار
ویژگی همانند کامنتها اسکیپ میشوند (به بالا مراجعه کنید). سطر
مربوط به نوع عنصر نیز با "(" شروع شده و نام نوع عنصر در ادامه
آن میآید.
دستور hxpipe فایلهای DTD را نمیخواند و فرض میکند که ویژگیها
همواره از نوع CDATA هستند. این برنامه برخلاف onsgmls هرگز
انواع دیگر (مانند IMPLIED، TOKEN، ID و غیره) را تولید نمیکند.
تگهای پایانی (End tags) به صورت زیر خروجی داده میشوند:
)elt
یعنی به صورت سطری که با ")" شروع شده و به دنبال آن نوع عنصر
میآید.
عناصر خالی (Empty elements) به این شکل خارج میشوند:
Aatt1 CDATA val1
Aatt2 CDATA val2
|empty
یعنی صفر یا چند سطر برای ویژگیها و یک سطر که با "|" شروع شده
و با نوع عنصر ادامه مییابد.
توجه داشته باشید که onsgmls هرگز علامت "|" را خروجی نمیدهد
(با این حال میتواند به صورت اختیاری سطری شامل یک حرف "e" درست
پیش از سطر "(" درج کند تا خالی بودن عنصر را مشخص نماید).
text متن معمولی به این شکل در خروجی نمایش داده میشود:
-text
یعنی به صورت یک سطر منفرد که با "-" آغاز میشود. متن موجود
همانند کامنتها اسکیپ میشود (به بالا مراجعه کنید).
line numbers
هنگامی که گزینه -l فعال باشد، hxpipe خطوطی به شکل زیر را در
میان خروجی درج میکند:
L12
که در آن "12" با شماره سطر منبع که خروجی بعدی از آن آمده است
جایگزین میشود.
دستور hxpipe ورودی را تنها از این جهت نرمالسازی میکند که ویژگیها را با
ترتیبی ثابت (به ترتیب الفبایی، اما مستقل از محلیسازی/Locale) خروجی
میدهد. این برنامه فایل DTD را نمیخواند، بنابراین فاصلههای خالی اضافی را
حذف نمیکند و نمیتواند ویژگیهای ضمنی (Implied) را اضافه کند. همچنین
موجودیتهای کاراکتری را بسط نمیدهد (هرچند میتوانید ورودی را ابتدا از
طریق hxunent پایپ کنید). این ابزار تگهای ضمنی را نیز اضافه نمیکند (مگر
با استفاده از گزینه -H).
گزینهها (OPTIONS)
گزینههای زیر پشتیبانی میشوند:
-l افزودن سطرهای "L" به خروجی برای نشان دادن شماره سطرها در فایل
منبع. در حال حاضر این گزینه همزمان با گزینه -H کار نمیکند.
-H اعمال قواعد ویژه برای HTML. در حالت عادی، hxpipe ورودی را به
عنوان یک فایل ساختاریافته معتبر (Well-formed) XML در نظر
میگیرد. با فعالسازی این گزینه، hxpipe ورودی را HTML فرض کرده
و تگهای ضمنی را اضافه میکند، عناصر خالی را تشخیص میدهد و
محتوای تگهای