草庐IT

XML Parser

runoob 2023-04-07 原文

XML Parser


所有现代浏览器都有内建的 XML 解析器。

XML 解析器把 XML 文档转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象。


解析 XML 文档

下面的代码片段把 XML 文档解析到 XML DOM 对象中:

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","books.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;


解析 XML 字符串

下面的代码片段把 XML 字符串解析到 XML DOM 对象中:

txt="<bookstore><book>";
txt=txt+"<title>Everyday Italian</title>";
txt=txt+"<author>Giada De Laurentiis</author>";
txt=txt+"<year>2005</year>";
txt=txt+"</book></bookstore>";

if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(txt);
}

注释:Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。


跨域访问

出于安全方面的原因,现代的浏览器不允许跨域的访问。

这意味着,网页以及它试图加载的 XML 文件,都必须位于相同的服务器上。


XML DOM

在下一章中,您将学习如何访问 XML DOM 对象并取回数据。


有关XML Parser的更多相关文章

  1. xml - Groovy XMLParser - 更新节点文本 - 2

    我有一些XML文件,如果name==testName,我想更改name。所以我写了这样的东西,但它不起作用。我哪里做错了?它向我打印参数类型不匹配,我不知道为什么。StringxmlData="1id1testNamewarnpackage1package22id2nameNameerrorpackage2package5";defloggr=newgroovy.util.XmlParser().parseText(xmlData);for(defit:loggr.children()){if(it.name.text().equals("testName")){it.name.val

  2. xml - 需要使用 XmlParser 将 xml 数据持久化到文件的 xml 标记 - 2

    更新或向xml文件添加内容后,xml声明将被删除。我正在使用XmlParser。这是更新xml中某些内容的代码。defxml=newXmlParser().parseText(newFile(fileLocation).getText('UTF-8'))deffound=xml.myTag1.findAll()found.each{it.mySubTag.value="Updated"}XmlUtil.serialize(xml)defnodePrinter=newXmlNodePrinter(newPrintWriter(newFile(fileLocation)))nodePrin

  3. xml - 默认情况下 XmlParser 和 XmlSlurper 命名空间是否感知? - 2

    在回答这个问题时HowtoreadvaluesfromXMLRequestandwriteintoXMLResponseusingGroovy?与namespace(SOAP)有关XmlSlurper和XmlParser,我意识到默认情况下我实际上无法判断它们是否非命名空间感知。虽然文档这样说(默认情况下不识别命名空间):XmlSlurperXmlSlurper()Createsanon-validatingandnon-namespace-awareXmlSlurperwhichdoesnotallowDOCTYPEdeclarationsindocuments.XmlParserX

  4. xml - 真正删除 XMLParser 对象 Groovy 中的节点 - 2

    如何通过XMLParser真正删除一个节点:x='''abeeff'''xml=newXmlParser().parseText(x)defnodeToDel=xml.A.B.find{it.@C1='a'}xml.remove(nodeToDel)printlnxmlnewXmlNodePrinter(newPrintWriter(newFileWriter(newFile('c:/temp/a.xml')))).print(xml)似乎有效但是!!!!当我将其翻译成我的问题时,它仍然保存原始xmlalthoguh在运行remove-method后返回true。我用谷歌搜索了一下,找

  5. java - XMLParser 正在吃掉我的空格 - 2

    我正在解析的wiki页面丢失了大量空白,我认为这是解析器的问题。我的Groovy脚本中有这个:@Grab(group='org.ccil.cowan.tagsoup',module='tagsoup',version='1.2')defslurper=newXmlSlurper(neworg.ccil.cowan.tagsoup.Parser())slurper.keepWhitespace=trueinputStream.withStream{doc=slurper.parse(it)println"originalContent="+doc.'**'.find{it.@id=='e

  6. xml - Groovy XmlSlurper 与 XmlParser - 2

    我在这个主题上搜索了一段时间,也找到了一些结果,我在文章末尾提到了这些结果。谁能帮我准确回答下面列出的这三个问题?对于哪些用例,使用XmlSluper比XmlParser更有意义,反之亦然(从API/语法的易用性角度来看)?哪个内存效率更高?(看起来像Slurper)哪个处理xml的速度更快?案例一。当我必须读取xml中的几乎所有节点时?案例b。当我只需要读取几个节点时(比如使用gpath表达式)?案例c。什么时候必须更新/转换xml?前提是xml文件不是普通文件(具有xml的深度和大小级别)。资源:http://www.tutkiun.com/2009/10/xmlparser-an

  7. php xmlReader 与 xmlparser - 2

    我知道xmlreader和其他基于树的解析器(如simplexml和dom)之间的区别。但是xmlreader和xmlparser有什么区别呢?使用一个比另一个有什么好处吗?我需要解析比较大的xml文件,affiliatedatafeeds大约100M。 最佳答案 他们使用两种不同的软件架构-推与拉。XMLReader是一个“拉式解析器”。您负责创建一个大循环并调用read()函数来向前移动光标。这种软件架构往往更容易直观地理解。XMLParser是一个基于事件的“推送解析器”。您负责注册由start_element、end_ele

  8. java - 从哪里获取 11.2.0.3 的 Oracle jar 文件 - xdb、aq、i18n、xmlparser - 2

    我正在尝试更新遗留Java应用程序以与Oracle11g版本11.2.0.3兼容。该应用程序在Oracle10g版本10.2.0.4上运行并使用OracleAdvancedQueues。它具有声明的Maven依赖项:aq10.2.0.4.0xdb10.2.0.4.0xml解析器10.2.0.4.0国际化10.2.0.4.0我正在努力寻找适用于11g的相同文件,特别是适用于11.2.0.3的文件。我在各个地方(例如我的Oracle主目录、JDeveloper安装和在线)四处查看,发现了各种名称和版本各异的令人眼花缭乱的jar文件,它们是候选但不是我需要的。谁能告诉我在哪里可以找到正确的j

  9. ios - xmlParser 解析导致在 iOS8 中崩溃,但在 iOS 7 中工作正常? - 2

    在模拟器上运行,[xmlParserparse]在iOS8中会导致崩溃,但在iOS7中工作正常。关于NSXMLParser,我找不到iOS7和iOS8之间的任何区别。相关的:NSData*data=[[NSDataalloc]initWithContentsOfFile:xmlFilePath];NSXMLParser*xmlParser=[[NSXMLParseralloc]initWithData:data];[xmlParsersetDelegate:self];BOOLsuccess=[xmlParserparse];//crashatthisline.

  10. ios - 在 Swift 中使用 XMLParser 解析特定标签并保存为字符串 - 2

    我想解析下面的响应并仅将“pdf-info”标签的值保存为字符串,letserverResponse="\n\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t

随机推荐