import java.io.StringWriter;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.apache.xerces.dom.DocumentImpl;
import org.apache.xerces.dom.DOMImplementationImpl;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.Serializer;
import org.apache.xml.serialize.XMLSerializer;
public class HelloApache
{
public static void main (String[] args)
{
try
{
Document doc = new DocumentImpl();
// Create Root Element
Element root = doc.createElement("BOOK");
// Create 2nd level Element and attach to the Root Element
Element item = doc.createElement("AUTHOR");
item.appendChild(doc.createTextNode("Bachelard.Gaston"));
root.appendChild(item);
// Cr ......
Á½ÖÖ·½·¨£º
ÆäÒ»£¬Ê¹Óà SelectNodes µÄ·½·¨£»ÒÔÏÂÀý×ÓΪʹÓô˷½·¨µÄ´¦Àí¡£
Æä¶þ£¬Ê¹Óà XQuery µÄ·½·¨¡£
''' <summary>
''' ´Ó XML ÎļþÖÐÈ¡µÃ¶ÔÓ¦ID µÄÓïÑÔÖµ
''' </summary>
''' <param name="textID">ÊäÈëµÄID</param>
''' <returns></returns>
''' <remarks></remarks>
Private Shared Function GetLanguageTextfromXML(ByVal textID As String) As LangText
Dim _return As LangText = Nothing
Try
If Not IsNothing(_xmlDoc) Then
Dim nodeList As XmlNodeList
nodeList = _xmlDoc.SelectNodes("//it ......
XML DOM
¡¡¡¡XML DOM ¶¨ÒåÁË·ÃÎʺʹ¦Àí XML ÎĵµµÄ±ê×¼·½·¨¡£
¡¡¡¡XML DOM ÊÇ XML Document Object Model µÄËõд£¬¼´ XML Îĵµ¶ÔÏóÄ£ÐÍ¡£
¡¡¡¡Ò»¡¢DOM ¼ò½é
¡¡¡¡Ê²Ã´ÊÇ DOM£¿
¡¡¡¡DOM ÊÇ W3C£¨ÍòÎ¬ÍøÁªÃË£© µÄÍÆ¼ö±ê×¼¡£
¡¡¡¡DOM ¶¨ÒåÁË·ÃÎÊÖîÈç XML ºÍ XHTML ÎĵµµÄ±ê×¼¡£
¡¡¡¡“W3C Îĵµ¶ÔÏóÄ£ÐÍ£¨DOM£©ÊÇÒ»¸öʹ³ÌÐòºÍ½Å±¾ÓÐÄÜÁ¦¶¯Ì¬µØ·ÃÎʺ͸üÐÂÎĵµµÄÄÚÈÝ¡¢½á¹¹ÒÔ¼°ÑùʽµÄƽ̨ºÍÓïÑÔÖÐÁ¢µÄ½Ó¿Ú¡£”
¡¡¡¡W3C DOM ±»·ÖΪ 3 ¸ö²»Í¬µÄ²¿·Ö/¼¶±ð£¨parts / levels£©£º
¡¡¡¡ºËÐÄ DOM
¡¡¡¡ÓÃÓÚÈκνṹ»¯ÎĵµµÄ±ê׼ģÐÍ
¡¡¡¡XML DOM
¡¡¡¡ÓÃÓÚ XML ÎĵµµÄ±ê׼ģÐÍ
¡¡¡¡HTML DOM
¡¡¡¡ÓÃÓÚ HTML ÎĵµµÄ±ê׼ģÐÍ
¡¡¡¡DOM ¶¨ÒåÁËËùÓÐÎĵµÔªËصĶÔÏóºÍÊôÐÔ£¬ÒÔ¼°·ÃÎÊËüÃǵķ½·¨£¨½Ó¿Ú£©¡£
¡¡¡¡Ê²Ã´ÊÇ HTML DOM£¿
¡¡¡¡HTML DOM ¶¨ÒåÁËËùÓÐ HTML ÔªËØµÄ¶ÔÏóºÍÊôÐÔ£¬ÒÔ¼°·ÃÎÊËüÃǵķ½·¨£¨½Ó¿Ú£©¡£
¡¡¡¡Ê²Ã´ÊÇ XML DOM?
¡¡¡¡XML DOM ÊÇ£º
¡¡¡¡ÓÃÓÚ XML µÄ±ê×¼¶ÔÏóÄ£ÐÍ
¡¡¡¡ÓÃÓÚ XML µÄ±ê×¼±à³Ì½Ó¿Ú
¡¡¡¡ÖÐÁ¢ÓÚÆ½Ì¨ºÍÓïÑÔ
¡¡¡¡W3C µÄ±ê×¼
¡¡¡¡XML DOM ¶¨ÒåÁËËùÓÐ XML ÔªËØµÄ¶ÔÏóºÍÊôÐÔ£¬ÒÔ¼°·ÃÎÊËüÃǵķ½·¨£¨½Ó¿Ú£©¡£
¡¡¡¡»»¾ä»°Ëµ£º
¡¡¡¡XML ......
µ±ÔÚPerlÖÐʹÓÃXMLʱ£¬Äã»áÓн«½üÎå°Ù¸öCPANÄ£¿é¿ÉÒÔÑ¡Ôñ£¬Ã¿Ò»¸ö¶¼Ö§³ÖÕûºÏWeb·þÎñµÄ²»Í¬·½Ãæ¡£´ËÍ⣬PerlµÄºËÐÄ¿â°üÀ¨¶à¸öÖ§³ÖXMLµÄÄ£¿é¡£ÕâÆªÎÄÕ¾͹Ø×¢ÓÚÒ»¸ö×îÔçÆÚÇÒÉæ¼°×îÆµ·±µÄºËÐÄÄ£¿é£ºXML::Parser.
XML::½âÎöÆ÷ϵÁÐ
×î³õµÄPerl½âÎöÆ÷XML::Parser::ExpatÓÉLarry WallÔÚ¼¸Äêǰ±àд²¢ÓÉClark Cooper±£³ÖÑÓÐø¡£Ä£¿é×÷ΪExpat XML parserµÄ½çÃæÓÉJames ClarkÓÃCÓïÑÔ±àдÇÒÒѾ±»Ò»Ð©½Å±¾ÓïÑÔËù²ÉÓá£
ExpatÊÇÒ»¸öÒÔʼþΪ»ù´¡µÄ½âÎöÆ÷£¬Òâζ×ÅÌØ¶¨Ìõ¼þ´¥·¢´¦Àí¹¦ÄÜ¡£ÀýÈ磬һ¸ö¿ªÊ¼»ò½áβ±ê¼Ç½«´¥·¢Êʵ±µÄÓû§¶¨Òå×Ó³ÌÐò¡£XML::ParserÄ£¿éÔÚExpat¹¦ÄܵĻù´¡ÉÏΪÆÕͨӦÓÃËù½¨¹¹¡£
×¢ÒâExpatÔÚ½âÎö֮ǰ²»»áʹXMLÉúЧÇÒÔÚÓöµ½´íÎó³öÏÖʱ»áʧЧ¡£ÕâЩÏÞÖÆ»áʹXML::ParserÄ£¿éËٶȷdz£Ö®¿ì¡£
XML::Parser¼ò½é
ÈκÎÈ˶¼¿ÉÒÔÔÚPerlÖбàдһ¸öXML½âÎöÆ÷¡£±Ï¾¹ÄãÖ»ÊÇ´¦Àí¾ßÓÐÒÑÖª¸ñʽµÄÎı¾¡£µ«ÓÉÓÚXML::ParserÄ£¿éÊÇÓÃC±àдµÄ£¬Ëû±ÈÈκÎÄã¿ÉÒÔʵÏֵĴ¿PerlÓ¦ÓÃÒª¸üÓÐЧµÄ¶à¡£¶øÇÒ¼ÈÈ»ËûÒѾ±»±àд³öÀ´£¬Äã¾Í¿ÉÒÔ°Ñʱ¼ä»¨ÔÚÆäËû¸üÓÐÓõÄÊÂÇéÉÏ¡£
XML::ParserµÄExpatµÄ¹¦ÄÜÔÊÐíÄ㶨ÒåËùʹÓõĽâÎöÆ÷µÄÑùʽ¡£×îÆÕ±éʹÓõÄÑùʽÊÇTreeºÍStream£¬Tree´¦ÀíXMLµÄÊäÈ룬´´½¨º ......
JavaScript½âÎö¶ÁÈ¡XMLÎļþ£¬Ö÷Òª¾ÍÊǼÓÔØ²¢½âÎöXMLÎļþ£¬È»ºó¾Í¿ÉÒÔ²âÊÔ½âÎöµÄXMLÎļþµÄÄÚÈÝ£¬´òÓ¡Êä³öÀ´¡£
±àдÁËÒ»¸öJavaScriptµÄÀàÀ´ÊµÏÖ¶Áȡһ¸öXMLÎļþÖеÄÊý¾Ý£¬ÊµÏÖ´úÂëÈçÏÂËùʾ£º
<mce:script type="text/javascript"><!--
/**
* @author Shirdrn
*/
function XMLDoc(){}; // ¶¨ÒåÒ»¸öXMLDocÀà
XMLDoc.prototype.xmlFile = ""; // xmlFileΪXMLDocµÄÒ»¸ö³ÉÔ±£¬ÊÇÖ¸“.xml”Îļþ
XMLDoc.prototype.parseXMLDoc = function(){ // ¼ÓÔØ½âÎöXMLÎļþµÄ³ÉÔ±·½·¨
var docParser;
if(window.ActiveXObject) { // IEä¯ÀÀÆ÷Ö§³Ö
docParser = new ActiveXObject("Microsoft.XMLDOM");
docParser.async = "false";
docParser.load(this.xmlFile);
return docParser;
}
else if(window.DOMParser) { // Mozilliaä¯ÀÀÆ÷Ö§³Ö
docParser = new DOMParser()
return docParser.parsefromString(this.xmlFile,"text/xml");
}
else { // Èç¹û²»ÊÇIEºÍMozilliaä¯ÀÀÆ÷ÔòÎÞ·¨½âÎö£¬·µ»Øfalse¡£
return false;
}
}
XMLDoc.prototype.print = function(readTagName,readTagCnt) { // ´òÓ¡Êä³ö¶ÁÈ¡µÄXMLÎļþµÄÄÚÈÝÐÅÏ¢ ......
JavaScript½âÎö¶ÁÈ¡XMLÎļþ£¬Ö÷Òª¾ÍÊǼÓÔØ²¢½âÎöXMLÎļþ£¬È»ºó¾Í¿ÉÒÔ²âÊÔ½âÎöµÄXMLÎļþµÄÄÚÈÝ£¬´òÓ¡Êä³öÀ´¡£
±àдÁËÒ»¸öJavaScriptµÄÀàÀ´ÊµÏÖ¶Áȡһ¸öXMLÎļþÖеÄÊý¾Ý£¬ÊµÏÖ´úÂëÈçÏÂËùʾ£º
<mce:script type="text/javascript"><!--
/**
* @author Shirdrn
*/
function XMLDoc(){}; // ¶¨ÒåÒ»¸öXMLDocÀà
XMLDoc.prototype.xmlFile = ""; // xmlFileΪXMLDocµÄÒ»¸ö³ÉÔ±£¬ÊÇÖ¸“.xml”Îļþ
XMLDoc.prototype.parseXMLDoc = function(){ // ¼ÓÔØ½âÎöXMLÎļþµÄ³ÉÔ±·½·¨
var docParser;
if(window.ActiveXObject) { // IEä¯ÀÀÆ÷Ö§³Ö
docParser = new ActiveXObject("Microsoft.XMLDOM");
docParser.async = "false";
docParser.load(this.xmlFile);
return docParser;
}
else if(window.DOMParser) { // Mozilliaä¯ÀÀÆ÷Ö§³Ö
docParser = new DOMParser()
return docParser.parsefromString(this.xmlFile,"text/xml");
}
else { // Èç¹û²»ÊÇIEºÍMozilliaä¯ÀÀÆ÷ÔòÎÞ·¨½âÎö£¬·µ»Øfalse¡£
return false;
}
}
XMLDoc.prototype.print = function(readTagName,readTagCnt) { // ´òÓ¡Êä³ö¶ÁÈ¡µÄXMLÎļþµÄÄÚÈÝÐÅÏ¢ ......
Èç¹ûÒªÍêÕûµÄÖ§³ÖXML over TCP£¬Ö»ÓÐÁ½ÖÖ°ì·¨£º
1£¬¼ÓÒ»¸öheaderÈ¥±êÃ÷Êý¾ÝµÄ³¤¶È
2£¬¼ÓÒ»¸ödelimiterÈ¥±êÃ÷Êý¾ÝµÄ½áÊø
ÕâÁ½ÖÖ·½·¨¶¼²»¹»ÓÅÑÅ¡£ÎÒÃDz»ÐèÒªÒ»¸öͨÓõķ½·¨£¬ÎÒÃÇÖ»ÒªÒ»¸ö×îÊʺÏÎÒÃǵķ½·¨¡£
ͨ³££¬ÎÒÃÇÄܹ»×Ô¶¨ÒåÊý¾ÝµÄ¸ñʽ£¬¶øÇÒÎÒÃÇͨ³£Ò»ÌõÏûÏ¢Ö»ÓÐÒ»¸öroot node£¬ÄÇôÎÒÃÇ¿ÉÒÔÊÔÊÔÏÂÃæµÄº¯Êý£º
//return length of the xml message
//return -1 for invalid data
//return 0 for not fully received
int GetXmlLen(string buf, string rootName)
{
string head = "<" + rootName;
if (buf.Length < head.Length)
{
//not fully recved
return 0;
}
if (!buf.StartsWith(head))
{
//invalid
return -1;
}
int idx = buf.IndexOf('>');
if (idx < 0)
{
//not fully recved
return 0;
}
if (buf[idx-1] == '/')
{
//empty root element
return (idx + 1);
}
string tail = "</" + rootName + ">";
idx = buf.IndexOf(tail);
if (idx < 0)
{
//not fully recved
return 0;
}
return (idx + tail.Length);
}
ÒªÇó£ºXMLÏû ......