ADC

XPath and HTML, XML, or JSON expressions

The Advanced policy infrastructure supports expressions for evaluating and retrieving data from HTML, XML, and JavaScript Object Notation (JSON) files. This enables you to find specific nodes in an HTML, XML, or JSON document, determine if a node exists in the file, locate nodes in XML contexts (for example, nodes that have specific parents or a specific attribute with a given value), and return the contents of such nodes. Additionally, you can use XPath expressions in rewrite expressions.

The Advanced policy expression implementation for XPath comprises an Advanced policy expression prefix (such as “HTTP.REQ.BODY”) that designates HTML or XML text, and the XPATH operator that takes the XPath expression as its argument.

HTML files are a largely free-form collection of tags and text elements. You can use the XPATH_HTML operator, which takes an XPath expression as its argument, to process HTML files. JSON files are either a collection of name/value pairs or an ordered list of values. You can use the XPATH_JSON operator, which takes an XPath expression as its argument, to process JSON files.

  • .XPATH(xpathex):Operate on an XML file and return a Boolean value.

    例如,下面的表达式返回一个薄熙来olean TRUE if a node called “creator” exists under the node “Book” within the first 1000 bytes of the XML file.

    HTTP.REQ.BODY(1000).XPATH(xp%boolean(//Book/creator)%)

    Parameters:

    xpathex - XPath Boolean expression

  • .XPATH(xpathex):Operate on an XML file and return a value of data type “double.”

    For example, the following expression converts the string “36” (a price value) to a value of data type “double” if the string is in the first 1000 bytes of the XML file:

    HTTP.REQ.BODY(1000).XPATH(xp%number(/Book/price)%)

    Parameters:

    xpathex - XPath numeric expression

  • .XPATH(xpathex):Operate on an XML file and return a node-set or a string. Node-sets are converted to corresponding strings by using the standard XPath string conversion routine.

    For example, the following expression selects all the nodes that are enclosed by “/Book/creator” (a node-set) in the first 1000 bytes of the body:

    HTTP.REQ.BODY(1000).XPATH(xp%/Book/creator%)

    Parameters:

    xpathex - XPath expression

  • .XPATH_HTML(xpathex)

    Operate on an HTML file and return a text value.

    For example, the following expression operates on an HTML file and returns the text enclosed in<\title></code>tags if the title HTML element is found in the first 1000 bytes:</p><p><code class="language-plaintext highlighter-rouge">HTTP.REQ.BODY(1000).XPATH_HTML(xp%/html/head/title%)</code></p><p>Parameters:</p><p>xpathex - XPath text expression</p></li> <li><p><strong><code class="language-plaintext highlighter-rouge"><text\>.XPATH_HTML_WITH_MARKUP(xpathex)</code></strong></p><p>Operate on an HTML file and return a string that contains the entire selected portion of the document, including markup such as including the enclosing element tags.</p><p>The following expression operates on the HTML file and selects all content within the<code class="language-plaintext highlighter-rouge"><title\></code>tag, including markup.</p><p><code class="language-plaintext highlighter-rouge">HTTP.REQ.BODY(1000).XPATH_HTML_WITH_MARKUP( xp%/html/head/title%)</code></p><p><strong>Example:</strong></p></li> </ul> <div class="language-plaintext highlighter-rouge"> <div class="highlight"> <pre class="highlight"><code><Book> <creator> <Person> <name>Milton</name> </Person> </creator> <title>Paradise Lost

The portion of the HTML body that is selected by the expression is marked for further processing.

Parameters:

xpathex - XPath expression

  • .XPATH_JSON(xpathex)

    Operate on a JSON file and return a Boolean value.

    For example, consider the following JSON file:

    {“Book”:{“creator”:{“person”:{“name”:’’} }, “title”:’’}}</p><p>The following expression operates on the JSON file and returns a Boolean TRUE if the JSON file contains a node named “creator,” whose parent node is “Book,” in the first 1000 bytes:</p><p><code class="language-plaintext highlighter-rouge">HTTP.REQ.BODY(1000).XPATH_JSON(xp%boolean(/Book/creator)%)</code></p><p>Parameters:</p><p>xpathex - XPath Boolean expression</p></li> <li><p><strong><code class="language-plaintext highlighter-rouge"><text\>.XPATH_JSON(xpathex)</code></strong>Operate on a JSON file and return a value of data type “double.”</p><p>For example, consider the following JSON file:</p><p><code class="language-plaintext highlighter-rouge">{"Book":{"creator":{"person":{"name":'\<name\>'} }, "title":'\<title\>', "price":"36"}}</code></p><p>The following expression operates on the JSON file and converts the string “36” to a value of data type “double” if the string is present in the first 1000 bytes of the JSON file.</p><p><code class="language-plaintext highlighter-rouge">HTTP.REQ.BODY(1000).XPATH_JSON(xp%number(/Book/price)%)</code></p><p>Parameters:</p><p><code class="language-plaintext highlighter-rouge">xpathex</code>- XPath numeric expression</p></li> <li><p><strong><code class="language-plaintext highlighter-rouge"><text\>.XPATH_JSON(xpathex)</code></strong>Operate on a JSON file and return a node-set or a string. Node-sets are converted to corresponding strings by using the standard XPath string conversion routine.</p><p>For example, consider the following JSON file:</p><p><code class="language-plaintext highlighter-rouge">{"Book":{"creator":{"person":{"name":'\<name\>'}}, "title":'\<title\>'}}</code></p><p>The following expression selects all the nodes that are enclosed by “/Book” (a node-set) in the first 1000 bytes of the body of the JSON file and returns the corresponding string value, which is “<name><title>”:</p><p><code class="language-plaintext highlighter-rouge">HTTP.REQ.BODY(1000).XPATH_JSON(xp%/Book%)</code></p><p>Parameters:</p><p>xpathex - XPath expression</p></li> <li><p><strong><text>.XPATH_JSON_WITH_MARKUP(xpathex)</strong>Operate on an XML file and return a string that contains the entire portion of the document for the result node, including markup such as including the enclosing element tags.</p><p>For example, consider the following JSON file:</p><p>{“Book”:{ “creator”:{ “person”:{ “name”:’<name>’ } }, “title”:’<title>’ } }</p><p>The following expression operates on the JSON file and selects all the nodes that are enclosed by “/Book/creator” in the first 1000 bytes of the body, which is “creator:{ person:{ name:’<name>’ } }.”</p><p><code class="language-plaintext highlighter-rouge">HTTP.REQ.BODY(1000).XPATH_JSON_WITH_MARKUP(xp%/Book/creator%)</code></p><p>The portion of the JSON body that is selected by the expression is marked for further processing.</p><p>Parameters:</p><p>xpathex - XPath expression</p></li> <li><p><strong><text>.XPATH_WITH_MARKUP(xpathex):</strong>Operate on an XML file and return a string that contains the entire portion of the document for the result node, including markup such as including the enclosing element tags.</p><p>For example, the following expression operates on an XML file and selects all the nodes enclosed by “/Book/creator” in the first 1000 bytes of the body.</p><p><code class="language-plaintext highlighter-rouge">HTTP.REQ.BODY(1000).XPATH_WITH_MARKUP(xp%/Book/creator%)</code></p><p>The portion of the JSON body that is selected by the expression is marked for further processing.</p><p>Parameters:</p><p><code class="language-plaintext highlighter-rouge">xpathex</code>- XPath expression</p></li> </ul> </div> <div class="mt-disclaimer" style="display:none"> <a id="mt-disclaimer"></a> <!--googleoff: all--> <div class="mt-citrix-disclaimer" data-localize-header="mt-disclaimers"> <span data-localize="mt_disclaimer">The official version of this content is in English. Some of the Cloud Software Group documentation content is machine translated for your convenience only. Cloud Software Group has no control over machine-translated content, which may contain errors, inaccuracies or unsuitable language. No warranty of any kind, either expressed or implied, is made as to the accuracy, reliability, suitability, or correctness of any translations made from the English original into any other language, or that your Cloud Software Group product or service conforms to any machine translated content, and any warranty provided under the applicable end user license agreement or terms of service, or any other agreement with Cloud Software Group, that the product or service conforms with any documentation shall not apply to the extent that such documentation has been machine translated. Cloud Software Group will not be held responsible for any damage or issues that may arise from using machine-translated content.</span> </div> <div class="mt-disclaimer-container"> <div class="mt-de-de-gl-disclaimer" style="display:none"> DIESER DIENST KANN ÜBERSETZUNGEN ENTHALTEN, DIE VON GOOGLE BEREITGESTELLT WERDEN. GOOGLE LEHNT JEDE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG IN BEZUG AUF DIE ÜBERSETZUNGEN AB, EINSCHLIESSLICH JEGLICHER GEWÄHRLEISTUNG DER GENAUIGKEIT, ZUVERLÄSSIGKEIT UND JEGLICHER STILLSCHWEIGENDEN GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER.</div> <div class="mt-fr-fr-gl-disclaimer" style="display:none"> CE SERVICE PEUT CONTENIR DES TRADUCTIONS FOURNIES PAR GOOGLE. GOOGLE EXCLUT TOUTE GARANTIE RELATIVE AUX TRADUCTIONS, EXPRESSE OU IMPLICITE, Y COMPRIS TOUTE GARANTIE D'EXACTITUDE, DE FIABILITÉ ET TOUTE GARANTIE IMPLICITE DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON.</div> <div class="mt-es-es-gl-disclaimer" style="display:none"> ESTE SERVICIO PUEDE CONTENER TRADUCCIONES CON TECNOLOGÍA DE GOOGLE. GOOGLE RENUNCIA A TODAS LAS GARANTÍAS RELACIONADAS CON LAS TRADUCCIONES, TANTO IMPLÍCITAS COMO EXPLÍCITAS, INCLUIDAS LAS GARANTÍAS DE EXACTITUD, FIABILIDAD Y OTRAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN EN PARTICULAR Y AUSENCIA DE INFRACCIÓN DE DERECHOS.</div> <div class="mt-zh-cn-gl-disclaimer" style="display:none"> 本服务可能包含由 Google 提供技术支持的翻译。Google 对这些翻译内容不做任何明示或暗示的保证,包括对准确性、可靠性的任何保证以及对适销性、特定用途的适用性和非侵权性的任何暗示保证。</div> <div class="mt-ja-jp-gl-disclaimer" style="display:none"> このサービスには、Google が提供する翻訳が含まれている可能性があります。Google は翻訳について、明示的か黙示的かを問わず、精度と信頼性に関するあらゆる保証、および商品性、特定目的への適合性、第三者の権利を侵害しないことに関するあらゆる黙示的保証を含め、一切保証しません。</div> <div class="mt-pt-br-gl-disclaimer" style="display:none"> ESTE SERVIÇO PODE CONTER TRADUÇÕES FORNECIDAS PELO GOOGLE. O GOOGLE SE EXIME DE TODAS AS GARANTIAS RELACIONADAS COM AS TRADUÇÕES, EXPRESSAS OU IMPLÍCITAS, INCLUINDO QUALQUER GARANTIA DE PRECISÃO, CONFIABILIDADE E QUALQUER GARANTIA IMPLÍCITA DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO INFRAÇÃO.</div> <div class="mt-de-de-amz-disclaimer" style="display:none"></div> <div class="mt-es-es-amz-disclaimer" style="display:none"></div> <div class="mt-fr-fr-amz-disclaimer" style="display:none"></div> </div> <!--googleon: all--> </div> </div> <div class="instruct-contributers" id="mobile-screen-instructions"> <span class="instruct-button"></span> <a class="editarticle-modal-link" href="javascript:void(0)">Instructions for Contributors</a> </div> </div> </div> <div class="col-12 col-sm-12 col-md-12 col-lg-3 order-1 order-sm-1 order-md-1 order-lg-12 sub-content-right-flex"> <div class="sub-content-right-wrapper mt-mobile"> <div id="mtMobileBanner" class="mt-feedback-banner margin-banner-top" style="display:none"> <div class="feedback-banner-container " data-localize-header="mt-feedback-form"> <div class="banner-content-wrapper"> <span class="banner-heading" data-localize="mt_feedback_banner_heading">This content has been machine translated dynamically.</span> </div> <div class="banner-content-wrapper"> <a class="banner-modal-button" href="//m.giftsix.com/docs/en-us/citrix-adc/12-1/appexpert/policies-and-expressions/ns-pi-adv-exp-pars-http-tcp-udp-data-wrapper-con/#" data-toggle="modal" data-target="#mtFeedbackModal"><span data-localize="mt_feedback_banner_link">Give feedback here</span></a> </div> </div> <div class="grate-ful-section" data-localize-header="mt-feedback-form"> <!--suc_msg div will show when we get success response from netlify for the podio feedback --> <img width="20" height="20" id="grate-ful-section_image_id"> <span data-localize="mt_feedback_thank_you_text">Thank you for the feedback</span> </div> </div> <nav aria-label="breadcrumb" class="d-lg-none breadcrumb-mobile "> <div class="breadcrumb-container sub-content-main-wrapper"> <ol class="breadcrumb ctx-breadcrumbs"> <li class="breadcrumb-item"><a href="https://docs.citrix.com/en-us"><span class="docs-icon icon-home breadcrumb-icon"></span></a></li> <li class="breadcrumb-item"><a href="https://docs.citrix.com/en-us/citrix-adc">网Scaler</a></li> <li class="breadcrumb-item"><a href="https://docs.citrix.com/en-us/citrix-adc/12-1">Citrix ADC 12.1</a></li> <li class="breadcrumb-item"><a href="https://docs.citrix.com/en-us/citrix-adc/12-1/appexpert">AppExpert</a></li> </ol> </div> </nav> <span class="page-title d-lg-none"><span>XPath and HTML, XML, or JSON expressions</span></span> <div class="meta-docs-cont-desktop"> <div class="meta-data d-lg-none"> <span class="docs-icon icon-calendar"></span> <span class="last-modified">September 21, 2020</span> <div class="contributor"> Contributed by:<div class="contributor-inline"> <!-- --> <span class="contributor-info has-contributor" title="Subbendu Majumder - Citrix Staff">S</span> <!-- --> <span class="contributor-info has-contributor" title="Sujatha Paramasivam - Citrix Staff">S</span> </div> </div> <div class="meta-border"></div> </div> <div class="docs-actions"> <div class="print docs-actions-item" onclick="window.print()"> <span data-content="Print" class="action-icon-text"><i class="docs-icon icon-print"></i> <!-- <i class="docs-icon icon-print-filled"></i> --></span> </div> <div class="share docs-actions-item"> <span class="docs-icon-container" data-content="Share"></span> <span class="docs-icon icon-share"></span> <!-- <i class="docs-icon icon-share-filled"></i> --> <div class="share-articles"> <p>Share</p> </div> </div> <div class="edit docs-actions-item" onclick="redirectToPage(('/en-us/citrix-adc/12-1/appexpert/policies-and-expressions/ns-pi-adv-exp-pars-http-tcp-udp-data-wrapper-con/ns-pi-xpath-json-exp-con.html'))"> <span data-content="Edit this article"><i class="docs-icon icon-edit"></i></span> <!-- <i class="docs-icon icon-edit-filled"></i> --> </div> </div> </div> <div class="meta-docs-cont-mobile"> <div class="row"> <div class="col-6"> <div class="meta-data d-lg-none"> <span class="docs-icon icon-calendar"></span> <span class="last-modified">September 21, 2020</span> <div class="contributor"> Contributed by:<div class="contributor-inline"> <!-- --> <span class="contributor-info has-contributor" title="Subbendu Majumder - Citrix Staff">S</span> <!-- --> <span class="contributor-info has-contributor" title="Sujatha Paramasivam - Citrix Staff">S</span> </div> </div> <div class="meta-border"></div> </div> </div> <div class="col-6"> <div class="docs-actions "> <div class="print docs-actions-item " onclick="window.print()"> <span data-content="Print" class="action-icon-text"><i class="docs-icon icon-print"></i> <!-- <i class="docs-icon icon-print-filled"></i> --></span> </div> <div class="share docs-actions-item "> <span class="docs-icon-container" data-content="Share"></span> <span class="docs-icon icon-share"></span> <!-- <i class="docs-icon icon-share-filled"></i> --> <div class="share-articles"> <p>Share</p> </div> </div> <div class="edit docs-actions-item "> <span onclick="redirectToPage(('/en-us/citrix-adc/12-1/appexpert/policies-and-expressions/ns-pi-adv-exp-pars-http-tcp-udp-data-wrapper-con/ns-pi-xpath-json-exp-con.html'))" data-content="Edit this article" href="javascript:;"><i class="docs-icon icon-edit"></i></span> <!-- <i class="docs-icon icon-edit-filled"></i> --> </div> </div> </div> <div class="col-12 pb-2"></div> </div> </div> <div class="content"> <div class="row no-gutters"> <div class="col-12 col-sm-12 content-toc-wrapper"> <div class="content-toc"> <h3 class="toc-header">In this article</h3> <div class="content-toc-nav scrollable"> <ul id="toc" class="section-nav"></ul> </div> </div> </div> </div> <div class="print-excluded d-lg-block"> <div class="instruct-contributers" id="large-screen-instructions"> <span class="instruct-button"></span> <a class="editarticle-modal-link" href="javascript:void(0)">Instructions for Contributors</a> </div> </div> </div> </div> </div> </div> </div> <div class="container-fluid"> <div class="row"> <div class="col-lg-8 col-md-10 col-sm-12 preview-modal-container "> <div class="modal fade modal-resize" data-backdrop="static" id="previewTermsModal" tabindex="-1" role="dialog" aria-labelledby="citrixPreviewModal" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered modal-size" role="document"> <div class="modal-content modal-corner mod-space mod-resize"> <div class="modal-header modal-border"> <span class="modal-title modal-title-font" id="citrixPreviewModal">Citrix Preview Documentation</span> <span class="docs-icon modal-close-icon icon-close" data-dismiss="modal" aria-label="Close"></span> </div> <div class="modal-body mod-scroll"> <p class="modal-desc">This Preview product documentation is Citrix Confidential.</p> <p class="modal-desc">You agree to hold this documentation confidential pursuant to the terms of your Citrix Beta/Tech Preview Agreement.</p> <p class="modal-desc">The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.</p> <p class="modal-desc">The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Citrix product purchase decisions.</p> <p class="modal-desc">If you do not agree, select Do Not Agree to exit.</p> </div> <div class="modal-footer modal-bottom btn-bottom"> <button id="iAgreePreviewTerms" class="btn btn-primary but-first" onclick="agreePreviewTerms()">我同意</button> <button id="iDonotAgreePreviewTerms" class="btn btn-secondary but-second" onclick="dontAgreePreviewTerms()">I DO NOT AGREE</button> </div> </div> </div> </div> </div> </div> </div> <div class="container-fluid"> <div class="row"> <div class="col-lg-8 col-md-10 col-sm-12 mt-feedback-modal-container "> <div class="modal fade " id="mtFeedbackModal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-sm" role="document" data-localize-header="mt-feedback-form"> <div class="modal-content modal-corner modal-border mod-resize"> <div class="modal-header"> <span data-localize="mt_feedback_header">Send us your feedback</span> <span class="docs-icon modal-close-icon icon-close" data-dismiss="modal" aria-label="Close"></span> </div> <div class="modal-body mod-scroll"> <h5 data-localize="mt_feedback_modal_title">Machine Translation Feedback Form</h5> <div class="container"> <div id="mt-feedback-options" class="form-group"> <div class="row"> <div class="col-6"> <div id="mtFeedbackYes" class="option-icon-wrapper"> <span class="docs-icon icon-check-option" data-dismiss="modal"></span> </div> <span data-localize="mt_feedback_yes_option">YES</span> </div> <div class="col-6"> <div id="mtFeedbackNo" class="option-icon-wrapper no-option-icon "> <span class="docs-icon icon-close"></span> </div> <span data-localize="mt_feedback_no_option">NO</span> </div> </div> </div> </div> <div class="form-group comment-wrapper"> <div class="form-input-wrapper"> <label for="comment"><span data-localize="mt_feedback_comment_label">Write something?</span></label> <textarea id="feedback-textArea" class="form-control mt-feedback-textarea" rows="4" cols="40" placeholder="Please write your feedback here"></textarea> </div> <div class="submit-section"> <button id="mtFeedbackSubmit" class="modal-border btn btn-primary but-first"><span data-localize="mt_feedback_submit_button">SUBMIT</span><img width="100" height="100" id="loader" alt="loader"></button> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="toast-msg"> <i class="copyMsgSucc" style="display: none">Copied!</i> <i class="copyMsgFail" style="display: none">Failed!</i> </div> </div> <div class="divEnlarge" style="display:none" onclick="this.style.display='none'"> <div id="imgEnlarge"> <span class="docs-icon image-close-icon icon-close"></span> </div> </div> </div> </div> <div class="row no-gutters"> <div class="col-sm-12 col-md-12 docs-page-footer"> <footer class="docs-footer"> <div class="footer-content"> <div class="left-section"> <a onclick="location.href='http://netscaler.com';"><img class="add-footer-logo"></a> </div> <div class="right-section"> <div class="link-section"> <a href="javascript:;" class="terms-text ctxDocFBlink">Site feedback</a> <span class="divider">|</span> <a class="terms-text cookie-preferences" href="https://www.cloud.com/legal.html">Privacy and legal terms</a> <span class="divider">|</span> <a href="//m.giftsix.com/docs/en-us/citrix-adc/12-1/appexpert/policies-and-expressions/ns-pi-adv-exp-pars-http-tcp-udp-data-wrapper-con/#" class="cookie-preferences" onclick="event.preventDefault(); window.evidon.notice.showConsentTool();">Cookie preferences</a> <span id="consent-setting-divider" class="divider">|</span> <a id="consent-setting-link" href="https://docs.citrix.com/en-us/settings.html">Consent settings</a> <span class="divider">|</span> <a id="cloud-link" href="https://docs.cloud.com" style="display: inline;">docs.cloud.com</a> </div> <div class="copyright-section"> <span class="copy-right-text">© 1999-<span class="copy-right-end-year"></span>Cloud Software Group, Inc. All rights reserved.</span> </div> </div> <!--This is the bootstrap feedback ui Modal pop up code--> <div class="modal fade" id="feedBackModal" data-backdrop="static" data-keyboard="false" tabindex="-1" aria-labelledby="feedBackModalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered feedback-modal-dialog" data-localize-header="feedback-form"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="feedBackModalLabel" data-localize="feedback_form_modal_title">Provide your feedback</h5> <div class="close" data-dismiss="modal" aria-label="Close"> <span class="docs-icon modal-close-icon icon-close"></span> </div> </div> <div class="modal-body"> <!--suc_msg div will show when we get success response from netlify for the feedback or mt-feedback form --> <div id="feedback-success" style="display: none;"> <div id="suc_msg"> <img width="20" height="20" id="suc_msg_image_id"> <span data-localize="feedback_form_modal_success_message" class="text-dark">Thanks for your feedback. We'll contact you at the provided email address if we require more information.</span> </div> </div> <!--error_msg div will show when we get any kind of error response from netlify for the feedback form--> <div id="feedback-error" style="display: none;"> <div id="error_msg"> <img width="20" height="20" id="error_msg_msg_image_id"> <span data-localize="feedback_form_modal_failure_message" class="text-dark">There was an error while submitting your feedback. Please try again</span> </div> </div> <div class="container-fluid form-wrapper"> <div class="row field-wrapper"> <div class="col-md-4 label-wrapper col-sm-4 col-xs-12"> <span class="input-label" data-localize="send_feedback">Send Feedback</span>:<span class="required-icon">*</span> </div> <div class="col-md-8 col-sm-8 col-xs-12"> <div> <label for="article-feedback" class="radiolabel" data-localize="about_the_article"><input type="radio" id="article-feedback" class="ffradio ffinput" name="feedback-radio" value="article-feedback">About the Article</label> </div> <div> <label for="product-feedback" class="radiolabel" data-localize="about_the_product"><input type="radio" id="product-feedback" class="ffradio ffinput" name="feedback-radio" value="product-feedback">About the Product</label> </div> <span class="about-error error-message" data-localize="feedback_form_modal_error_text">This field is required</span> </div> </div> <div class="row field-wrapper"> <div class="col-md-4 label-wrapper col-sm-4 col-xs-12"> <span class="input-label" data-localize="feedback_form_modal_subject">Subject</span>:<span class="required-icon">*</span> </div> <div class="col-md-8 col-sm-8 col-xs-12"> <input type="text" id="subject" class="ffinput" name="subject"> <span class="subject-error error-message" data-localize="feedback_form_modal_error_text">This field is required</span> </div> </div> <div class="row field-wrapper"> <div class="col-md-4 label-wrapper col-sm-4 col-xs-12"> <span class="input-label" data-localize="feedback_form_modal_description">Description</span>:<span class="required-icon">*</span> </div> <div class="col-md-8 col-sm-8 col-xs-12"> <textarea type="text" id="description" class="ffinput fftextarea" name="description" spellcheck="false"></textarea> <span class="description-error error-message" data-localize="feedback_form_modal_error_text">This field is required</span> </div> </div> <div class="row field-wrapper"> <div class="col-md-4 label-wrapper col-sm-4 col-xs-12"> <span class="input-label" data-localize="feedback_form_modal_url">URL:</span> </div> <div class="col-md-8 col-sm-8 col-xs-12"> <input type="text" id="weburl" class="ffinput weburl" name="url" readonly> </div> </div> <div class="row field-wrapper"> <div class="col-md-4 label-wrapper col-sm-4 col-xs-12"> <span class="input-label" data-localize="feedback_form_modal_name">Name</span>:<span class="required-icon">*</span> </div> <div class="col-md-8 col-sm-8 col-xs-12"> <input type="text" id="name" class="ffinput" name="name"> <span class="name-error error-message" data-localize="feedback_form_modal_invalid_name">Please enter a valid name</span> </div> </div> <div class="row field-wrapper"> <div class="col-md-4 label-wrapper col-sm-4 col-xs-12"> <span class="input-label" data-localize="feedback_form_modal_email">Email</span>:<span class="required-icon">*</span> </div> <div class="col-md-8 col-sm-8 col-xs-12"> <input type="text" id="email" class="ffinput" name="email"> <span class="invalid-email error-message" data-localize="feedback_form_modal_invalid_email">Please enter a valid email</span> <div class="required-text input-label"> <span data-localize="feedback_form_modal_requiredtext">Required fields are marked with an</span> <span class="required-icon">*</span> </div> </div> <div class="col-md-12 button-wrapper"> <button id="ffButtonSubmit" class="submit-btn submitButton" disabled data-localize="feedback_form_modal_submit">Submit</button> </div> </div> </div> </div> </div> </div> </div> <input type="hidden" id="hasContributorSection" value="false"> <div class="modal fade" id="editarticle" data-backdrop="static" data-keyboard="false" tabindex="-1" aria-labelledby="editarticleModal" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered edit-article-dialog"> <div class="modal-content "> <div class="modal-body"> <div class="close" data-dismiss="modal" aria-label="Close"> <span class="docs-icon modal-close-icon icon-close"></span> </div> <div id="modal-edit-content"></div> <div class="submit-form"> <label class="agreement help-text edit-text"><input type="checkbox" class="ffcheckbox" onchange="document.getElementById('continue-edit').disabled = !this.checked" data-localize="check_box">I confirm that I have read the instructions and requested required access.</label> <input type="button" class="ffcontinue edit-text" data-localize="edit_button" name="Continue Edit" value="Continue" id="continue-edit" disabled> </div> </div> </div> </div> </div> <!--Feedback modal closing--> </div> </footer> <div id="stop" class="scroll-to-top"> <a href="//m.giftsix.com/docs/en-us/citrix-adc/12-1/appexpert/policies-and-expressions/ns-pi-adv-exp-pars-http-tcp-udp-data-wrapper-con/#"><span class="docs-icon icon-go-to-top"></span></a> </div> <div id="homepageScript"></div> <div class="container"> <div class="modal fade modal-fullscreen" id="editModalpop" role="dialog"> <div class="modal-dialog full_modal-dialog"> <!-- Modal content--> <div class="modal-content full_modal-content"> <div class="modal-header"> <!-- <h5 class="modal-title">Edit Article</h5> --> <button type="button" class="close" data-dismiss="modal">×</button> </div> <div class="modal-body"> <div class="form-group" id="myTextarea"></div> <div class="row mt-3"> <div class="col"> <input type="text" class="form-control" placeholder="Commit message" id="branchcommit"> <span class="error-message" style="display: none;color: red;" id="brancherror">Please enter a Commit message</span> </div> <div class="col"> <button type="submit" class="btn btn-primary mb-2" id="submitPr">Request Change</button> <img id="editloader" alt="loader" style="display: none;"> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </body> </html>