项目中常常碰到为一些所谓遗留系统提供web service接口的需求,而这些遗留系统的接口只是采用字符串作为输入、输出参数,并且字符串的内容就是xml格式也常常碰见。
其实上述情况倒是比较容易处理,但是一个常见问题是从web service进入的xml文档是带有namespace定义的,而遗留系统处理的xml基本上是没有namesapce定义。所以就有将xml文档的namespace删除的需求。在网上查到一些样例,经过自己测试和改写,算是有了一个xquery的小程序。如下:
(:: pragma parameter="$anyXML" type="xs:anyType" ::)
declare namespace xf = "http://test";
declare function xf:stripNamespace($anyXML as node()*)
as node()* {
for $node in $anyXML
return if ($node instance of element())
then (element
{expanded-QName ("", local-name($node))}
{$node/@*,
xf:stripNamespace($node/node())})
else if ($node instance of document-node())
then xf:stripNamespace($node/node())
else $node
};
declare variable $anyXML as element(*) external;
declare variable $namespace as xs:string external;
xf:stripNamespace($anyXML)
分享到:
相关推荐
- **1.3.4 XQuery与XPath**:介绍了用于查询和处理XML文档的XQuery和XPath技术。 #### 1.4 XML的高级特性 - **1.4.1 DTD(Document Type Definition)**:讲述了DTD的概念及其作用,即定义XML文档的结构和规则。 - ...
7. **XPath和XQuery**:XPath是用于在XML文档中查找信息的语言,而XQuery则是一种更强大的查询语言,用于从XML数据中提取信息。C#中的System.Xml.XPath和System.Xml.XPath.XDocument类可以帮助你使用这些语言。 8. ...
- **DOM(Document Object Model)**:将整个XML文档加载到内存中,形成一个可遍历的对象树。适合小规模或内存资源充足的环境。 - **SAX(Simple API for XML)**:事件驱动的解析器,按需读取XML文档,节省内存。...
XPath通过路径表达式来定位XML文档中的元素和属性,这类似于文件系统的路径。例如,"/bookstore/book/title"路径会选取XML文档中所有bookstore元素下的book元素的title子元素。XPath还包含了一个标准函数库,用于...
11. **DOM(Document Object Model)和SAX(Simple API for XML)**:DOM将XML文档加载到内存中形成一棵树形结构,方便访问;SAX是事件驱动的解析方式,逐行读取,适用于处理大型XML文件。 XML学习资料通常会涵盖...
可以通过 XMLType 对象创建、读取、更新和删除 XML 文档。 - **DBXML::Document**: 提供了对 XML 文档的基本操作,如加载、解析和序列化等。 **2. 查询引擎** - **XPath 查询**: 支持标准 XPath 语法进行数据检索...
"xml高级编程"可能涉及更复杂的话题,如XPath用于在XML文档中查找信息,XSLT用于转换XML文档的结构,以及XQuery用于查询XML数据。这些技术允许开发者对XML数据进行强大的处理和操作。另外,DOM(文档对象模型)和SAX...
总结,XML编程从入门到精通涵盖了理解XML的基本概念、创建有效的XML文档、使用DTD或XML Schema进行验证、掌握XPath和XQuery查询、运用XSLT进行数据转换、了解解析技术如DOM和SAX,以及XML在Web服务中的实际应用。...
DOM将整个XML文档加载到内存中,方便快速访问任何部分,但消耗资源较大。SAX和StAX则是流式解析,只处理当前元素,节省内存,适合大型XML文档。 在编程语言中,如Java、Python或C#,都有相应的库支持XML操作。例如...
4. **XPath(XML Path Language)**:XPath是用于在XML文档中查找信息的语言。它允许我们选取节点、选取满足特定条件的节点、计算节点集的长度等,是XSLT和XQuery等技术的基础。 5. **XSLT(Extensible Stylesheet ...
理解XML文档的声明(Declaration)以及命名空间(Namespace)的概念。 2. DTD与XML Schema:这两个是用于定义XML文档结构的规范。DTD(Document Type Definition)是XML早期的验证方式,而XML Schema提供了更强大且...
此外,教程可能还会涉及XPath,这是一种用于在XML文档中查找信息的语言,它提供了路径表达式来选取节点,或者选取满足特定条件的节点。XQuery则是另一种查询XML数据的语言,功能更为强大,可以用于复杂的查询和数据...
7. **XPath**:XPath是XML路径语言,用于查找XML文档中的节点。它可以快速定位到特定的元素、属性或者文本,是XML处理中非常实用的工具。 8. **XSLT**:XSL转换用于将XML文档转换成其他格式,如HTML、PDF或新的XML...
- **元素 (Element)**:XML文档中最基本的组成部分,由起始标签和结束标签组成。 - **属性 (Attribute)**:附加在起始标签上的信息,用于提供更多关于元素的信息。 - **文本 (Text)**:位于元素内部的纯文本内容。 ...
"XML增删改查"是指在XML文档中进行添加、删除、修改和查询数据的基本操作,这些操作是理解和应用XML的关键技能。 1. **XML文档结构** - **文档声明**: XML文档以`<?xml version="1.0" encoding="UTF-8"?>`开始,...
在压缩包中,可能包含的XML相关资料可能有XML基础教程、XML Schema教程、XPath(XML Path Language)和XQuery语言的学习资料,以及XML在实际项目中的应用示例。学习这些内容有助于深入理解XML的工作原理,并能有效地...
7. **DOM**:将整个XML文档加载到内存中形成一棵树形结构,便于遍历和操作。 8. **SAX**:事件驱动的解析方法,只在遇到特定元素或事件时触发回调函数,节省内存。 9. **XPath**:一种语言,用于在XML文档中查找信息...
XQuery 是一种用于查询 XML 文档的强大语言。这份文档旨在提供一个易于理解的 XQuery 概览,并且通过一系列连续的例子来辅助理解,这些例子围绕着一个简化的 XML 系统进行,该系统用于安排音乐会。本篇文档不仅提供...