Matlab讀寫xml檔案
xml檔案以文件物件模型表示,簡稱DOM(Document Object Model)。在Matlab中,使用xmlread讀取xml檔案成DOM節點,對xml檔案的操作轉化成對DOM節點的操作,使用xmlwrite把DOM節點寫入到xml檔案中。
Matlab寫xml檔案
以個人資訊為例,通常個人的資訊包括姓名、性別、住址和電話等等,其中電話可能有多個,比如手機和座機,程式碼如下。
% file name
filename = 'info';
% create document
docNode = com.mathworks.xml.XMLUtils.createDocument('info' );
% document element
docRootNode = docNode.getDocumentElement();
% name
nameNode = docNode.createElement('name');
nameNode.appendChild(docNode.createTextNode(sprintf('Jack')));
docRootNode.appendChild(nameNode);
% gender
genderNode = docNode.createElement('gender');
genderNode.appendChild(docNode .createTextNode(sprintf('male')));
docRootNode.appendChild(genderNode);
% address
addressNode = docNode.createElement('address');
addressNode.appendChild(docNode.createTextNode(sprintf('Beijing')));
docRootNode.appendChild(addressNode);
% phone
phoneElement = docNode.createElement('phone');
docRootNode .appendChild(phoneElement);
mobilephoneNode = docNode.createElement('mobilephone');
mobilephoneNode.appendChild(docNode.createTextNode('123456'));
phoneElement.appendChild(mobilephoneNode);
landlineNode = docNode.createElement('landline');
landlineNode.appendChild(docNode.createTextNode('012345'));
phoneElement.appendChild(landlineNode);
% xmlwrite
xmlFileName = [filename,'.xml'];
xmlwrite(xmlFileName,docNode);
簡單理解xml可以分為Document,Element和Node三級結構,Element可以巢狀Element和Node,Node是最小的xml單位。
注意其中getDocumentElement(), createElement()和createTextNode()三個方法,分別是獲取Document, Element和Node的三個方法。此外注意appendChild()前面的元素決定了xml元素的結構,最後通過xmlwrite方法寫入到xml檔案中,最終xml檔案如下。
<?xml version="1.0" encoding="utf-8"?>
<info>
<name>Jack</name>
<gender>male</gender>
<address>Beijing</address>
<phone>
<mobilephone>123456</mobilephone>
<landline>012345</landline>
</phone>
</info>
Matlab讀xml檔案
讀取過程不光包括讀入xml檔案,還需要解析,以之前儲存的info.xml為例,程式碼如下。
% read xml
xmlDoc = xmlread('info.xml');
% name node
name_array = xmlDoc.getElementsByTagName('name');
name = char(name_array.item(0).getTextContent());
disp(['name:' name]);
% phone element
phone_array = xmlDoc.getElementsByTagName('phone');
phone = phone_array.item(0);
disp([char(phone.item(1).getNodeName()) ':' char(phone.item(1).getTextContent())]);
disp([char(phone.item(3).getNodeName()) ':' char(phone.item(3).getTextContent())]);
首先用xmlread讀入整個xml檔案,此後通過getElementsByTagName(‘name’)找出name節點,注意沒有getNodeByTagName方法,並且getElementsByTagName()得到的是一個NodeList陣列,因為xml允許節點重名,可能有多個name節點,所以通過item(0)得到第一個name節點,並且通過getTextContent()方法輸出name節點的內容。
同樣通過getElementsByTagName(‘phone’).item(0)找到phone節點,此處phone包含mobilephone和landline兩個子節點,通過測試發現phone節點item(0),item(2)和item(4)都是#text的節點,item(1)和item(3)分別代表mobilephone和landline兩個節點,通過getNodeName()和getTextContent()分別得到節點的名稱和內容,結果如下。
name:Jack
mobilephone:123456
landline:012345
相關推薦
Matlab讀寫xml檔案
xml檔案以文件物件模型表示,簡稱DOM(Document Object Model)。在Matlab中,使用xmlread讀取xml檔案成DOM節點,對xml檔案的操作轉化成對DOM節點的操作,使用xmlwrite把DOM節點寫入到xml檔案中。 Matla
Java:使用DOM4j來實現讀寫XML檔案中的屬性和元素
DOM4可以讀取和新增XML檔案的屬性或者元素 讀取屬性: public static void ReadAttributes() throws DocumentException { File file = new File("D:\\cmz\\java\\XMLTest\\Custom
Java:簡單的讀寫XML檔案之使用DOM4J讀寫
Dom4J方式解析XML檔案。dom4j是非官方提供的xml檔案解析方式,因此需要去第三方下載dom4j的jar包 File file = new File("D:\\chengmuzhe\\java\\JavaOOP6.0\\students.xml"); SAXReader reader = n
C++讀寫XML檔案(libxml2庫)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
C++讀寫XML檔案(使用tinyxml庫)
使用以下程式碼之前,需要下載TinyXml庫,幷包含到工程下 #include <stdio.h> #include "tinyxml.h" #include <iostream> #include <cstring> usin
Python讀寫XML檔案
什麼是XML XML是可擴充套件標記語言(Extensible Markup Language)的縮寫,其中標記是關鍵部分。使用者可以建立內容,然後使用限定標記標記它,從而使每個單詞、短語或塊成為可識別、可分類的資訊。 標記語言從早起的私有公司和政府制定形式逐
PHP讀寫XML檔案的四種方法
PHP對XML檔案進行讀寫操作的方法一共有四種,分別是:字串方式直接讀寫、DOMDocument讀寫、XMLWrite寫和XMLReader讀、SimpleXML讀寫,本文將依次對這四種方法進行介紹。 介紹之前首先對本文例子使用的資料和檔案進行說明。本文寫XML檔案
android 中讀寫xml檔案時取得路徑的方法/data/sdcard/src
package com.eboy.readwritexml; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream;
tinyxml2讀寫XML檔案的例程
例程很簡單,因此就不再囉嗦了,直接上程式碼。 test.xml內容: <?xml version="1.0"?> <scene name="Depth"> <surface id="A001" type="Camera"> <
C# 讀寫XML檔案的方法詳細總結
XmlDocument類的屬性 屬性 說明 Attributes 當前節點的屬性集合 BaseURI 當前節點的基URI ChildNodes 節點的所有子節點 Doc
Matlab 讀寫yuv檔案
clear all; clc; fid = fopen('Data/Testing/down.yuv','r'); %讀入檔案 fod = fopen('Data/Testing/test.yuv',
MFC讀寫XML檔案
檔案頂部加入 #import "msxml3.dll"; usingnamespace MSXML2; //這兩句作用是,在程式的資料夾下生成MSXML3.TLH和MSXML3.TLI兩個檔案; ---------------------------------------------------------
一次程式碼重構之旅-快速讀寫xml檔案工具類封裝
為了滿足系統的靈活性,有些功能經常需要用到配置檔案,一般是xml格式的居多.如何能快速讀寫配置檔案呢? 以前都是用dom4j提供的api來讀寫xml檔案,用dom4j讀寫配置檔案總感覺像是在結構化的處理問題,能不能直接把xml檔案和JavaBean之間相互轉換呢
Qt:QXMLStreamReader、QXMLStreamWriter,讀寫XML檔案例項
效果圖: 需求: 開啟對應格式的XML檔案,讀入到QTreewidget樹中,並能將XML檔案另存為,寫入到磁碟。 原始碼: main.cpp #include "mainwindow.h" #include <QApplication> int
cocos2dx讀寫xml檔案
首先包含標頭檔案 #include "tinyxml2/tinyxml2.h" usingnamespace tinyxml2; //data.xml檔案內容 <Chapters> <Chapter> <Name>Misty Va
matlab讀寫txt檔案中的資料並畫圖
oclusion: 3D(Base frame): [ c2 c3 c4 ] = textread('zd3(x).txt',' %f %f %f ',102) ; plot3(c2,c3,c4,':.b'); axis([min(c2),max(c2),min(c
使用jdom讀寫xml檔案
JDOM是一種適合Java程式設計師來使用的Java XML解析器,而dom,dom4j適用於不同的語言. 程式碼如下: process.xml <?xml version="1.0" encoding="UTF-8"?><Process> <
C++通過TinyXML類庫讀寫XML檔案
TinyXML是一個開源的解析XML的解析庫,能夠用於C++,能夠在Windows或Linux中編譯。這個解析庫的模型通過解析XML檔案,然後在記憶體中生成DOM模型,從而讓我們很方便的遍歷這棵XML樹。DOM模型即文件物件模型,是將整個文件分成多個元素(如書、章、節、段等)
qt讀寫xml檔案
1、DOM方式 寫xml檔案,以QDomText方式寫,程式碼如下 QFile file("d:/test.txt"); file.open(QIODevice::WriteOnly); QDomDocument doc; QDomProcessingInstructio
dom4j讀寫xml檔案以及遇到的亂碼解決辦法
這是碰到亂碼問題之後再csdn上看到的: xml亂碼的問題在於編碼集的衝突。 /*//document物件在記憶體中是以"UTF-8"編碼形式存在,用FileWriter將document物件以字元流的形式寫入xml文件預設是用本地碼錶"gb2312"編碼 * 亂