顯示具有 XML筆記 標籤的文章。 顯示所有文章
顯示具有 XML筆記 標籤的文章。 顯示所有文章

星期二, 6月 23, 2009

特殊符號編碼

今天系統突然沒反應
看了才發現原來xml裡有特殊符號 造成xml判斷錯誤







< 小於&lt;
> 大於&gt;
& 和&amp;
' 單引號&apos;
" 雙引號 &quot;
斷行符號 &#13


特殊字符編碼大全 ... 自已google

星期二, 3月 04, 2008

flash與xml

1.查詢
//顯示level為4的節點的title值

trace (kingdaXML.item.(level == 4).title);

//顯示level>2的節點的title值,本處結果大於1,所以是一個XML Array。

trace (kingdaXML.item.(level > 2).title);

//使用屬性用@開頭即可。真方便。

trace (kingdaXML.item.(level > 2).@id);

2.添加或者修改屬性
方便的不能再方便,直接寫即可。爽翻天啊。



//把id == 1的節點level值改為2

kingdaXML.item.(@id==1).level = 2;

//把id==1的節點添加一個屬性 page

kingdaXML.item.(@id==1).page = 100;

trace (kingdaXML.item.(@id==1));

*
name() 取得 => ABC
toXMLString() //印出從開始tag到結束tag
toString() //印出tag間的字
setName("tagName"); //可改tag name

*利用xpath抓的到是nodelist
var stateNode:XML=XmlDoc.region;會失敗
因此要用list接
或加上陣列[0]

*如果只有一個子節點
.children()會抓不出來

星期二, 1月 08, 2008

xmlDoc.load跟xmlDoc.loadXml的不同

xmlDoc.load:可讀取xml檔案(dtd未定義)
xmlDoc.loadXml:直接讀取已定義的xml檔...

如過用loadXml讀未定義的xml檔
會出現「在根層次的資料無效。 第 1 行,位置 1。」
應該是這樣吧...智源大師開導後的心得

例外可用.net裡的XmlTextWriter建立語式正確的 XML

以 XmlTextWriter 建立語式正確的 XML

星期二, 12月 18, 2007

XPath指定節點

原本利用getElementById來取得指定的節點
才發現要用DTD指名該節點的欄位為ID型態
MSDN的說明:雖然 ID 型別的屬性可以在 XSD 結構描述或 DTD 中定義,但是這一版的產品只支援在 DTD 中定義者。除非在 DTD 中定義,否則名稱為 "ID" 的屬性並不是 ID 型別。不知道屬性是否為 ID 型別的實作,應該會傳回 Null 參照 (即 Visual Basic 中的 Nothing)。

後來很辛苦的一步步建好
才發現id得存文字型態...會寫這句當然是因為id用數字存
後來銀光大大利用xpath指到屬性...也可以抓到了
XmlNode aaa = doc.SelectSingleNode("//Area [@ID='9']");

星期四, 9月 13, 2007

用C#讀取XML的元素和屬性

用C#讀取XML的元素和屬性

Method 1 (ex. Google Weather API)
private String weatherApiUri = @"http://www.google.co.uk/ig/api?weather=";
private String xmlNode = "xml_api_reply/weather/current_conditions";

XmlDocument xd = (XmlDocument)xmlFromGoogle; //set xml document
XmlNodeList xnl = xd.SelectNodes(xmlNode); //get the node

XmlNode xmlDetail;
xmlDetail = GWP_NodeList.Item(0).SelectSingleNode("condition ");
Console.write(xmlDetail.Attributes["data"].InnerText);


Method 2


using System.Xml;
namespace DOMTest
{
class DOM
{
private static void PrintElement(XmlDocument document)
{
//獲取所有的Node
XmlNodeList nodeList=document.GetElementsByTagName('*');
//打印每一個node的名稱
for (int i=0;i (less) nodeList.Count;i++)
{
XmlNode node=nodeList.Item(i);
Console.WriteLine(node.Name);
}
}

private static void PrintAttributes(XmlDocument document)
{
XmlNodeList nodeList=document.GetElementsByTagName("*");
XmlNamedNodeMap nameNodeMap;
XmlElement element;
XmlAttribute attribute;
string attributeName;
string attributeValue;

for(int i=0;i (less) nodeList.Count;i++)
{
element=(XmlElement)nodeList.Item(i);
Console.WriteLine(element.Name+":"+element.ChildNodes[0].Value);
nameNodeMap=element.Attributes;
if(nameNodeMap!=null)
{
for(int j=0;j (less) nameNodeMap.Count;j++)
{
attribute=(XmlAttribute)nameNodeMap.Item(j);
attributeName=attribute.Name;
attributeValue=attribute.Value;
Console.WriteLine("屬性是:"+attributeName+"="+attributeValue);
}
}
}
}
[STAThread]
static void Main(string[] args)
{
XmlDocument document =new XmlDocument();
document.Load("student.xml");
Console.WriteLine("元素是:");
PrintElement(document);

// Console.WriteLine("元素屬性是:");
// PrintAttributes(document);
}
}
}

星期三, 9月 05, 2007

從 XML 載入 DataSet

從 XML 載入 DataSet: "如果要呼叫 ReadXml 來載入一個非常大的檔案,將會使效能降低。為了確保 ReadXml 在針對大檔案時仍能保持最佳效能,請針對 DataSet 的每個資料表都呼叫 BeginLoadData 方法,再呼叫 ReadXml。最後再針對 DataSet 的每個資料表呼叫 EndLoadData (如下列範例所示)。"

C#

foreach (DataTable dataTable in dataSet.Tables)
dataTable.BeginLoadData();

dataSet.ReadXml("file.xml");

foreach (DataTable dataTable in dataSet.Tables)
dataTable.EndLoadData();

Double's thought: 超簡易入手的XML & DTD 教學

Double's thought: 超簡易入手的XML & DTD 教學: "超簡易入手的XML & DTD 教學 看過寫的最簡單的XML & DTD 教學。 XML教學在此。 DTD教學在此。 其實,還有還多超簡易教學,適合剛入手的生手看。 ZVON.org"