Delphi 2009를 사용하여 작성중인 IXMLDocument의 문서 요소에 적용 할 선언 된 네임 스페이스 접두사를 얻으려고합니다. 문서 요소가 만들어지면 접두사가있는 네임 스페이스를 선언 할 수 있지만 문서 요소에 적용되지 않고 문서 요소의 접두사를 변경할 수 없습니다. doc.CreateElement (nodename, namespaceURI)를 사용하여 문서 요소를 만들면 지정한 URI가 doc에 대한 기본 네임 스페이스로 추가됩니다. 이는 내가 원하는 것과 다릅니다. 이 문서는 이미 기본 네임 스페이스가있는 다른 문서에 추가 될 예정입니다. IXMLNode 및 FNamespacePrefix : 문자열 TAG_IH_IMPORT 및 NS_HISTORIAN 문자열 상수, eleDoc 있습니다Delphi에서 문서 요소의 접두사를 설정하는 방법
Result := NewXMLDocument;
eleDoc := Result.CreateElement(TAG_IH_IMPORT, NS_HISTORIAN);
eleDoc.DeclareNamespace(FNamespacePrefix, NS_HISTORIAN);
. 가져 오기 태그에 적용 : 정말 "H"는 것을 싶어
<Import xmlns="uri" xmlns:h="uri" />
: 같은
이의 출력은 보인다. 어떤 제안?
감사합니다. 그 자식 노드에 대한 접두사를 선언, 당신이 임시 문서 노드를 만들 수 있습니다, 또는
Result := NewXMLDocument;
eleDoc := Result.CreateElement(FNamespacePrefix + ':' + TAG_IH_IMPORT, NS_HISTORIAN);
eleDoc.DeclareNamespace(FNamespacePrefix, NS_HISTORIAN);
Result.DocumentElement := eleDoc;
자식 노드를 추가
감사합니다. 이미 두 번째 솔루션을 구현했지만 아직 게시하지 않았습니다. 당신의 첫 번째 제안은 더 깨끗해졌고 나는 그것이 작동 할 것이라고 기대하지 않았다는 것을 제외하고는 왜 시작하지 않았는지 알지 못합니다. – RJCookeSE