Làm cách nào tôi có thể chuyển đổi HTML sang XML?

Tệp HTML là tệp dựa trên đánh dấu sử dụng các thẻ và mã đánh dấu khác nhau để sử dụng trình duyệt web để hiển thị thông tin được định dạng. Định dạng tệp HTML phục vụ mục đích tương tự như tệp HTM và ngày nay, không có sự khác biệt giữa hai định dạng này

Nhanh chóng chuyển đổi HTML sang XML và các định dạng khác. Các tệp HTML không được hỗ trợ bởi tất cả các ứng dụng và do đó, một số ứng dụng có thể muốn chuyển đổi các tệp HTML của họ sang định dạng XML hoặc định dạng khác được hỗ trợ bởi chương trình của họ hoặc các trường hợp sử dụng khác. Phần trình diễn này sẽ hướng dẫn bạn cách chuyển đổi các tệp HTML sang XML để bạn có thể tiếp tục dự án của mình một cách dễ dàng

1. Tải xuống phần mềm chuyển đổi tài liệu Doxillion

Làm cách nào tôi có thể chuyển đổi HTML sang XML?

2. Nhập tệp HTML vào chương trình

Nhấp vào nút Thêm (các) tệp màu xanh lá cây, nằm trên thanh công cụ chính để mở cửa sổ tìm tệp. Tìm và chọn các tệp HTML trên máy tính của bạn và nhấp vào Mở để đưa chúng vào Doxillion để chuyển đổi chúng sang định dạng tệp XML. Bạn cũng có thể kéo và thả trực tiếp các tệp HTML của mình vào chương trình để chuyển đổi chúng.

Làm cách nào tôi có thể chuyển đổi HTML sang XML?

3. Chọn một thư mục đầu ra

Đặt đích đầu ra nơi bạn muốn các tệp đã chuyển đổi của mình đi sau khi chúng được chuyển đổi từ định dạng HTML sang XML. Nhấp vào mũi tên thả xuống Lưu vào thư mục hoặc Thư mục đầu ra để xem menu thả xuống và chọn một thư mục từ danh sách này. Nhấp vào nút Duyệt qua bên phải mũi tên để mở cửa sổ tìm tệp và chọn một thư mục trên máy tính của bạn theo cách này

Làm cách nào tôi có thể chuyển đổi HTML sang XML?

4. Đặt định dạng đầu ra

Nhấp vào mũi tên thả xuống ở phía bên trái của chương trình bên cạnh dòng chữ "Định dạng đầu ra" để xem danh sách các định dạng tệp tài liệu có sẵn. Để chuyển đổi tệp HTML của bạn thành tệp XML, chỉ cần chọn tùy chọn từ danh sách này có nội dung "XML. " Tất cả các chuyển đổi được thực hiện bây giờ sẽ là định dạng tệp tài liệu XML

Làm cách nào tôi có thể chuyển đổi HTML sang XML?

5. Chuyển đổi HTML sang XML

Nhấp vào một trong các nút Chuyển đổi, nằm ở góc dưới cùng bên phải của chương trình hoặc trên thanh công cụ chính. Điều này sẽ bắt đầu quá trình chuyển đổi. Bạn chỉ có thể chọn một tệp để chuyển đổi từng tệp một hoặc bạn có thể chọn tất cả chúng để thực hiện chuyển đổi XML hàng loạt dễ dàng

Tôi đã tìm ra cách chuyển đổi html (thậm chí xấu) thành XML được định dạng tốt. Tôi bắt đầu dựa trên hàm DOM loadHTML. Tuy nhiên, trong thời gian đó, một số vấn đề đã xảy ra và tôi đã tối ưu hóa và thêm các bản vá để khắc phục các tác dụng phụ

  function tryToXml($dom,$content) {
    if(!$content) return false;

    // xml well formed content can be loaded as xml node tree
    $fragment = $dom->createDocumentFragment();
    // wonderfull appendXML to add an XML string directly into the node tree!

    // aappendxml will fail on a xml declaration so manually skip this when occurred
    if( substr( $content,0, 5) == '')+1);
      if( strpos($content,'<') ) {
        $content = substr($content,strpos($content,'<'));
      }
    }

    // if appendXML is not working then use below htmlToXml() for nasty html correction
    if(!@$fragment->appendXML( $content )) {
      return $this->htmlToXml($dom,$content);
    }

    return $fragment;
  }



  // convert content into xml
  // dom is only needed to prepare the xml which will be returned
  function htmlToXml($dom, $content, $needEncoding=false, $bodyOnly=true) {

    // no xml when html is empty
    if(!$content) return false;

    // real content and possibly it needs encoding
    if( $needEncoding ) {
      // no need to convert character encoding as loadHTML will respect the content-type (only)
      $content =  '' . $content;
    }

    // return a dom from the content
    $domInject = new DOMDocument("1.0", "UTF-8");
    $domInject->preserveWhiteSpace = false;
    $domInject->formatOutput = true;

    // html type
    try {
      @$domInject->loadHTML( $content );
    } catch(Exception $e){
      // do nothing and continue as it's normal that warnings will occur on nasty HTML content
    }
        // to check encoding: echo $dom->encoding
        $this->reworkDom( $domInject );

    if( $bodyOnly ) {
      $fragment = $dom->createDocumentFragment();

      // retrieve nodes within /html/body
      foreach( $domInject->documentElement->childNodes as $elementLevel1 ) {
       if( $elementLevel1->nodeName == 'body' and $elementLevel1->nodeType == XML_ELEMENT_NODE ) {
         foreach( $elementLevel1->childNodes as $elementInject ) {
           $fragment->insertBefore( $dom->importNode($elementInject, true) );
         }
        }
      }
    } else {
      $fragment = $dom->importNode($domInject->documentElement, true);
    }

    return $fragment;
  }



    protected function reworkDom( $node, $level = 0 ) {

        // start with the first child node to iterate
        $nodeChild = $node->firstChild;

        while ( $nodeChild )  {
            $nodeNextChild = $nodeChild->nextSibling;

            switch ( $nodeChild->nodeType ) {
                case XML_ELEMENT_NODE:
                    // iterate through children element nodes
                    $this->reworkDom( $nodeChild, $level + 1);
                    break;
                case XML_TEXT_NODE:
                case XML_CDATA_SECTION_NODE:
                    // do nothing with text, cdata
                    break;
                case XML_COMMENT_NODE:
                    // ensure comments to remove - sign also follows the w3c guideline
                    $nodeChild->nodeValue = str_replace("-","_",$nodeChild->nodeValue);
                    break;
                case XML_DOCUMENT_TYPE_NODE:  // 10: needs to be removed
                case XML_PI_NODE: // 7: remove PI
                    $node->removeChild( $nodeChild );
                    $nodeChild = null; // make null to test later
                    break;
                case XML_DOCUMENT_NODE:
                    // should not appear as it's always the root, just to be complete
                    // however generate exception!
                case XML_HTML_DOCUMENT_NODE:
                    // should not appear as it's always the root, just to be complete
                    // however generate exception!
                default:
                    throw new exception("Engine: reworkDom type not declared [".$nodeChild->nodeType. "]");
            }
            $nodeChild = $nodeNextChild;
        } ;
    }

Bây giờ điều này cũng cho phép thêm nhiều đoạn html vào một XML mà tôi cần để tự mình sử dụng. Nói chung nó có thể được sử dụng như thế này

        $c='

testtwo

'; $dom=new DOMDocument('1.0', 'UTF-8'); $n=$dom->appendChild($dom->createElement('info')); // make a root element if( $valueXml=tryToXml($dom,$c) ) { $n->appendChild($valueXml); } echo '
'. htmlentities($dom->saveXml($n)). '
';

Trong ví dụ này '

testtwo

_______________ sẽ được xuất ra dưới dạng XML được định dạng tốt dưới dạng '_______________'. Thẻ gốc thông tin được thêm vào vì nó cũng sẽ cho phép chuyển đổi '

one

two

' không phải là XML vì nó không có một phần tử gốc. Tuy nhiên, nếu html của bạn chắc chắn có một phần tử gốc thì có thể bỏ qua thẻ gốc phụ

Với điều này, tôi đang nhận được XML thực sự đẹp từ HTML không có cấu trúc và thậm chí bị hỏng

Tôi hy vọng nó rõ ràng một chút và có thể đóng góp cho những người khác sử dụng nó

Làm cách nào để chuyển đổi tệp HTML sang XML?

Cách chuyển đổi HTML sang XML bằng Phần mềm chuyển đổi tài liệu Doxillion .
Tải xuống phần mềm chuyển đổi tài liệu Doxillion. Tải xuống phần mềm chuyển đổi tài liệu Doxillion. .
Nhập tệp HTML vào chương trình. .
Chọn một thư mục đầu ra. .
Đặt định dạng đầu ra. .
Chuyển đổi HTML sang XML

Tôi có thể viết HTML bằng XML không?

Bạn có thể bao gồm nội dung HTML . Một khả năng là mã hóa nó trong BASE64 như bạn đã đề cập. Một người khác có thể đang sử dụng thẻ CDATA. chỉ cần nhớ rằng XML và CDATA bảo toàn khoảng trắng.

Làm cách nào để tạo một tệp XML?

Cách tạo tệp XML .
Mở trình soạn thảo văn bản bạn chọn
Trên dòng đầu tiên, hãy viết một khai báo XML
Đặt phần tử gốc của bạn bên dưới phần khai báo
Thêm các phần tử con của bạn trong phần tử gốc
Xem lại tệp của bạn để tìm lỗi
Lưu tệp của bạn với. .
Kiểm tra tệp của bạn bằng cách mở nó trong cửa sổ trình duyệt

Làm cách nào để chuyển đổi HTML sang XML trong C#?

Chuyển HTML sang XML .
chuỗi xmlNội dung;
XmlDocument doc = new XmlDocument();
tài liệu. Tải (đầu raFileTextBox. Chữ);
// Phần tử bảng thứ 4 chứa số thứ tự được yêu cầu
Nút XmlNode = doc. GetElementsByTagName("bảng")[3];
for (int i = 1; i < nút. nút con. Đếm - 1;