XML (.xml)
- Import 支持 XML 标准版本 1.1.
- 对于以下基于 XML 的格式使用特殊的转换器:"ExpressionML"、"JVX"、"MathML"、"ODS"、"SXC"、"XHTML" 以及 "XHTMLMathML".
背景
-
- MIME 类型:text/xml
- XML 通用目的的标记语言和结构文档格式.
- 主要用于计算机网络中不同系统间的数据交换.
- 用一分层模型表示结构数据.
- 以包括标记、属性和字符内容的基于树的结构存储数据.
- 纯文本文件,一般编码为 UTF-8.
- XML 是衍生自 Extensible Markup Language(可扩展标记语言)的缩写.
- 是标准通用标记语言(SGML)的子集.
- 自1996年由 XML Working Group 开发.
- 于2001年作为 W3C 的标准建议 RFC 3076 发布.
Import 与 Export
- 如果可能的话,Import["file.xml"] 对于基于 XML 的文件格式使用特殊的转换器,否则导入文件为通用的 XML 并返回一个 XMLObject 表达式.
- XMLObject 表达式以符号形式将整个 XML 文档表示为 XMLElement 表达式树.
- Import["file.xml","XML"] 总是导入为通用的 XML.
- Import["file.xml",elements] 导入指定的元素.
- 既然 XML 与 Wolfram 语言均以树结构表示数据,所以它们之间有一个自然的映射. Wolfram 语言以嵌套的 XMLElement 对象存储 XML 数据结构,以 XML 数据内嵌于一个 XMLObject 存储整个 XML 文档.
- 默认情况下,Import 以字符串形式返回存储在 XML 的数值数据.
- 导入格式可以由 Import["file","XML"] 或 Import["file",{"XML",elem,…}] 指定.
- Import["file.html","XML"] 在导入前,把 HTML 转换成格式良好的 XML.
- Export["file.xml",expr] 根据 expr 创建 XML 文件.
- 支持的表达式 expr 包括:
-
XMLElement[…] 导出符号 XML 元素 XMLObject[…] 导出符号 XML 对象 - XMLObject 或 XMLElement 以外类型的表达式将导出为 ExpressionML.
- Export["file.xml",expr, elem] 通过把 expr 作为指定参数 elem 创建一个 XML 文件.
- Export["file.xml",{expr1,expr2,…},{{elem1,elem2,…}}] 把每一个 expri 指定为相应的 elemi
- Export["file.xml",expr,opt1->val1,…] 导出具有指定值的指定选项参数的 expr.
- Export["file.xml",{elem1->expr1,elem2->expr2,…},"Rules"] 使用规则指定要导出的参数.
- 请到以下参考页面了解完整的基本信息:
-
Import, Export 从文件导入或导出到文件 CloudImport, CloudExport 从云对象导入或导出到云对象 ImportString, ExportString 从字符串导入或导出到字符串 ImportByteArray, ExportByteArray 从字节数组导入或导出到字节数组
导入参数
- Import 的通用参数:
-
"Elements" 该文件可用的参数和选项列表 "Summary" 文件摘要 "Rules" 所有可用参数的规则列表 - 表示数据的参数:
-
"CDATA" 以字符串列表表示的 CDATA 部分 "Comments" 以字符串列表表示的 XML 注释 "EmbeddedDTD" 嵌入文档类型定义 (DTD) "Plaintext" 文件的纯文本表示 "Tags" 文件中存在的所有标记列表 "XMLObject" 作为符号式 XML 表达式的整个文档 "XMLElement" 嵌套的 XMLElement 对象 - 默认情况下,Import 使用 "XMLObject" 参数.
选项
- Import 的选项:
-
"AllowRemoteDTDAccess" True 是否在网络中尝试获取外部的 DTD "AllowUnrecognizedEntities" Automatic 是否允许解析 XML 文档中无法识别的实体 "IncludeDefaultedAttributes" False 是否对属性填充默认值 "IncludeEmbeddedObjects" None 要包括的("Comments" 与"ProcessingInstructions")内嵌对象 "IncludeNamespaces" Automatic 是否返回完全合格的标记和属性名称 "NormalizeWhitespace" True 是否去除开头和结尾的空格并在字符数据中把连续的空格减少到一单个空格 "PreserveCDATASections" False 是否把字符数据部分保留为特殊对象 "ReadDTD" True 是否读取外部的 DTD "ValidateAgainstDTD" Automatic 是否按指定的 DTD 验证文档 - Export 的选项:
-
"AttributeQuoting" "'" 对于属性值指定分隔符 "ElementFormatting" Automatic 导出文档中长字符串的参数的缩进以及断行 "Entities" None 用名称实体取代字符的规则 "NamespacePrefixes" {} 命名空间的前缀命名,形式为 "namespace"->"prefix"
范例
打开所有单元关闭所有单元基本范例 (3)
范围 (1)
导入元素 (7)
"XMLElement" (1)
导入嵌套 XMLElement 对象:
导入的选项 (18)
导出的选项 (1)
"AttributeQuoting" (1)
Export 到 XML,比较使用不同的属性值分隔符所得到的结果: