線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:5433
推到 Plurk!
推到 Facebook!

XMLDOCUMENT 中的XMLNS 會重複在屬性中出現

尚未結案
Cindy Chiang
一般會員


發表:2
回覆:1
積分:0
註冊:2004-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-22 14:29:12 IP:61.62.xxx.xxx 未訂閱
以下問題 PRO 曾在2002年詢問過, 但無人回應. 我也遇到同樣的問題, 請問有任何高手可以回答嗎? 感激不盡... 我想利用XMLDocument 產生一份XML文件 裡面一開始是這樣的 <?xml version="1.0"?> <test xmlns="x-schema:s_test.xml"> <user> <name>EF-A</name> ..... _____________________________________ 如果我用以下的程式碼來產生 var XMLInt : IDOMDocument; RootInt, NodeInt, ChildInt, AttrInt : IDOMNode; begin XMLDocument1.Active := False; XMLDocument1.XML.Text := ''; XMLDocument1.Active := True; XMLInt := XMLDocument1.DOMDocument; XMLDocument1.Version := '1.0'; XMLDocument1.Encoding := 'UTF-8'; RootInt := XMLInt.appendChild(XMLInt.createElement('test')); NodeInt := RootInt.appendChild(XMLInt.createElement('user')); ChildInt := NodeInt.appendChild(XMLInt.createElement('name')); AttrInt := XMLInt.createAttribute('xmlns'); AttrInt.nodeValue := 'x-schema:s_test.xml'; RootInt.attributes.setNamedItem(AttrInt); ...... _______________________________________ 那麼產生出來的xml會有一個問題 如下: <?xml version="1.0"?> <test xmlns="x-schema:s_test.xml"> <user xmlns=""> <name>EF-A</name> ...... 原本應該在第三行產生 <user> 但是卻變成了 <user xmlns=""> 多了後面的東西,但是如果把 AttrInt := XMLInt.createAttribute('xmlns'); 中的 xmlns 改為其他字,就不會出現那樣的錯誤? 難道是 xmlns 不能當作是一般的 Attribute 來加入嗎? 那我該如何加入呢? 謝謝!
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-26 18:51:04 IP:218.174.xxx.xxx 未訂閱
那個xmlns應該是元件自己加上去的 以下程式試過可以產生你要的格式 可完全自己控制 (D6/7)    
uses XMLIntf, XMLDoc;    procedure TForm1.Button1Click(Sender: TObject);
var
  RootInt, NodeInt, ChildInt: IXMLNode;
  XMLDocument1: TXMLDocument;
begin
  XMLDocument1:=TXMLDocument.Create(self);
  XMLDocument1.Active := False;
  XMLDocument1.XML.Text := '';
  XMLDocument1.Active := True;
  XMLDocument1.Version := '1.0';
  XMLDocument1.Encoding := 'UTF-8';
  XMLDocument1.Options:=[doNodeAutoIndent];
  RootInt:=XMLDocument1.AddChild('test');
  RootInt.Attributes['xmlns']:='x-schema:s_test.xml';
  NodeInt:=RootInt.AddChild('user');
  ChildInt:=RootInt.AddChild('name');
  ChildInt.NodeValue:='EF-A';
  XMLDocument1.SaveToFile('C:\test.xml');    end;    
@瞭解越多.懂得越少@
Cindy Chiang
一般會員


發表:2
回覆:1
積分:0
註冊:2004-08-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-29 17:12:18 IP:61.62.xxx.xxx 未訂閱
引言: 那個xmlns應該是元件自己加上去的 以下程式試過可以產生你要的格式 可完全自己控制 (D6/7)
uses XMLIntf, XMLDoc;    procedure TForm1.Button1Click(Sender: TObject);
var
  RootInt, NodeInt, ChildInt: IXMLNode;
  XMLDocument1: TXMLDocument;
begin
  XMLDocument1:=TXMLDocument.Create(self);
  XMLDocument1.Active := False;
  XMLDocument1.XML.Text := '';
  XMLDocument1.Active := True;
  XMLDocument1.Version := '1.0';
  XMLDocument1.Encoding := 'UTF-8';
  XMLDocument1.Options:=[doNodeAutoIndent];
  RootInt:=XMLDocument1.AddChild('test');
  RootInt.Attributes['xmlns']:='x-schema:s_test.xml';
  NodeInt:=RootInt.AddChild('user');
  ChildInt:=RootInt.AddChild('name');
  ChildInt.NodeValue:='EF-A';
  XMLDocument1.SaveToFile('C:\test.xml');    end;    
@瞭解越多.懂得越少@
Thank you Chris_shieh reply. 但是我用的是IXMLDocument 不是 TXMLDocument. 此行程式 RootInt.Attributes['xmlns']:='x-schema:s_test.xml'; 在IXMLDocument 會有問題. 可否請您繼續指教. 預先謝謝您.
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-29 17:53:55 IP:61.58.xxx.xxx 未訂閱
以下試過效果一樣可正確執行
uses XMLIntf, XMLDoc;    procedure TForm1.Button1Click(Sender: TObject);
var
  RootInt, NodeInt, ChildInt: IXMLNode;
  ixml:IXMLDocument;
begin
  ixml:=NewXMLDocument;
  RootInt:=ixml.AddChild('test');
  RootInt.Attributes['xmlns']:='x-schema:s_test.xml';
  NodeInt:=RootInt.AddChild('user');
  ChildInt:=RootInt.AddChild('name');
  ChildInt.NodeValue:='EF-A';
  ixml.SaveToFile('C:\test.xml');
end;
@瞭解越多.懂得越少@
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-04-26 13:50:51 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
e3e452045
一般會員


發表:2
回覆:1
積分:0
註冊:2018-08-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2018-08-04 16:57:05 IP:223.141.xxx.xxx 未訂閱
系統時間:2024-11-10 20:45:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!