[Perl]ÀûÓÃXML::DOMÉú³ÉXMLÎĵµ
PerlµÄXML::DOM¹¦ÄܺÜÇ¿´ó£¬ÀûÓÃËü¿ÉÒÔÇáÒ׵طÖÎöXMLÎĵµ£¬Ò²¿ÉÒÔ½¨Á¢XMLÎĵµ¡£
³£ÓõÄÀà°üÀ¨£º
XML::DOM::Node£ºËùÓÐÀàµÄ»ùÀ࣬±íʾһ¸öXML½Úµã¡£
XML::DOM::Parser£ºXML½âÎöÆ÷£¬½«XML×Ö·û´®½âÎö³ÉXML::DOM::Document¶ÔÏó¡£
XML::DOM::Document£ºÖ¸ÏòXMLÎĵµµÄ¸ù½Úµã¡£
XML::DOM::Element£ºÖ¸ÏòÒ»¸öÔªËØ£¬Í¨³£ÓÉXML::DOM::Document->createElementÔªËØÉú³É¡£
ÆäËûµÄÀà¿ÉÒԲ鿴CPAN
ÉϹØÓÚ XML::DOM µÄ˵Ã÷¡£
½¨Á¢XMLÎĵµµÄͨ³£×ö·¨ÊÇ£ºÊ×ÏÈͨ¹ý XML::DOM::ParserÉú³ÉÒ»¸öDocument¶ÔÏó£¬
ÔÙͨ¹ýÕâ¸öDocument¶ÔÏóµÄ createElement¡¢createTextNode µÈ·½·¨Éú³É¸÷¸ö½Úµã£¬
×îºóͨ¹ý XML::DOM::Node->appendChild ·½·¨½«½ÚµãÌí¼Óµ½Document¶ÔÏóÖУ¬
×îºóÔÙͨ¹ý toString ·½·¨½« Document ת»»Îª×Ö·û´®Êä³ö¡£
ÏÂÃæÊǽ¨Á¢XMLÎĵµµÄÒ»¸öÀý×Ó£º
#!/usr/bin/perl
use XML::DOM;
use XML::Twig;
# ´´½¨XMLµÄ×îÍâ²ãÔªËØ
my $xml = "<MyXML/>";
# ͨ¹ýXML::DOM::Parser½âÎöÍâ²ãÔªËØ£¬´´½¨»ù´¡XMLÎĵµ
# XML::DOM::Parser::parseº¯ÊýµÄ·µ»ØÖµÎª XML::DOM::Document Àà
my $parser = new XML::DOM::Parser;
my $dom = $parser->parse($xml);
# Éú³ÉBook½Úµã
# createElementµÄ·µ»ØÖµÎª XML::DOM::Element Àà
# XML::DOM::Element µÄ¸¸ÀàÊÇ XML::DOM::Node Àà
my $book = $dom->createElement("Book");
# ÉèÖýڵãÊôÐÔ
$book->setAttribute("title", "My First Book");
$book->setAttribute("author", "charlee");
# Éú³ÉChapter½Úµã
my $chapter = $dom->createElement("Chapter");
$chapter->setAttribute("id", "1");
# Éú³ÉÒ»¸öÎı¾½Úµã
my $title = $dom->createTextNode("My First Chapter");
$chapter->appendChild($title);
# Ìí¼ÓChapterµ½Book
$book->appendChild($chapter);
# Ìí¼ÓBookµ½XMLÎĵµ
$dom->getDocumentElement->appendChild($book);
# ÀûÓÃXML::TwigÕûÀí¸ñʽ
my $twig = new XML::Twig;
$twig->set_indent(" "x4);
$twig->parse($dom->toString);
$twig->set_pretty_print("indented");
# Êä³ö
print $twig->sprint;
×îºóÒ»¶ÎʹÓÃXML::TwigµÄ³ÌÐòÖ»ÊÇΪÁËÕûÀíXMLÊä³ö½á¹ûµÄ¸ñʽ£¬
Èç¹û²»ÐèÒªÕûÀí¸ñÊ
Ïà¹ØÎĵµ£º
SAX¸ÅÄî
SAXÊÇSimple API for XML
µÄËõд£¬Ëü²¢²»ÊÇÓÉW3C¹Ù·½ËùÌá³öµÄ±ê×¼£¬¿ÉÒÔ˵ÊÇ“Ãñ¼ä”µÄÊÂʵ±ê×¼¡£Êµ¼ÊÉÏ£¬ËüÊÇÒ»ÖÖÉçÇøÐÔÖʵÄÌÖÂÛ²úÎï¡£ËäÈ»Èç´Ë£¬ÔÚXMLÖжÔSAXµÄÓ¦ÓÃË¿ºÁ²»±ÈDOMÉÙ£¬¼¸ºõËùÓеÄXML½âÎöÆ÷¶¼»áÖ§³ÖËü¡£
Óë
DOM±È½Ï¶øÑÔ£¬SAXÊÇÒ»ÖÖÇáÁ¿Ð͵ķ½·¨¡£ÎÒÃÇÖªµÀ£¬ÔÚ´¦ÀíDOMµÄʱºò£¬Î ......
package book.xml;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.Default ......
XML Schema ÖÐ import ºÍ include µÄÇø±ð
XML Schema ÔÊÐí½«Ò»¸öXSDÎļþ·ÖΪ¼¸¸öÎļþ´æ·Å£¬ÔÚ±ØÒªÊ±Ê¹Óà import »òÕß include ½øÐе¼Èë¡£Õâ¶þÕßµÄÇø±ðÊÇ£º
import£ºÖ»Äܵ¼È벻ͬÃüÃû¿Õ¼äµÄXSD
include£ºÖ»Äܵ¼ÈëÏàͬÃüÃû¿Õ¼äµÄXSD£¬»ò±»µ¼ÈëµÄXSDδÉùÃ÷ÃüÃû¿Õ¼ä
Àý×Ó£º
<xsd:import namespace=”http://acme ......
public static IList<News> GetAllNews()
{
XmlDocument xdoc = new XmlDocument();
xdoc.Load("Äã¶ÁÈ¡µÄµØÖ·£ºÀýÈç ......