XML 문서를로드 한 후 요소에 네임 스페이스를 추가하려고하면 불가능합니다.
MSDN에서
:
추가, 수정 또는 문서가 XML 문서 객체 모델에로드 한 후 XML 문서의 예에 XML 네임 스페이스 정의를 삭제할 수 없습니다 (XMLDOM) 구문 분석기. 에 사용되는 XML 노드는 XML 문서의 데이터를 나타내는 데 XMLDOM 파서에 문서를로드 할 때 만들어진 입니다. 이 노드 은 이 만들어 질 때 XML 네임 스페이스 특성에 영구적으로 바인딩됩니다. 따라서 빈 XML 네임 스페이스 선언 (xmlns = "")은 노드의 자식 노드에 추가 된 이며 이러한 노드의 기본 XML 네임 스페이스 특성을 보존합니다.
그러나 입력을로드하고 각 요소를 읽고 네임 스페이스가 설정된 다른 문서 (또는 메모리)에 쓸 수 있습니다. 다음은 xml 문자열을 구문 분석하고 네임 스페이스 접두사 및 네임 스페이스와 함께 새 xml 요소를 만드는 코드입니다.
String xmlWithoutNamespace =
@"<Folio><Node1>Value1</Node1><Node2>Value2</Node2><Node3>Value3</Node3></Folio>";
String prefix ="vs";
String testNamespace = "http://www.testnamespace/vs/";
XmlDocument xmlDocument = new XmlDocument();
XElement folio = XElement.Parse(xmlWithoutNamespace);
XmlElement folioNode = xmlDocument.CreateElement(prefix, folio.Name.LocalName, testNamespace);
var nodes = from node in folio.Elements()
select node;
foreach (XElement item in nodes)
{
var node = xmlDocument.CreateElement(prefix, item.Name.ToString(), testNamespace);
node.InnerText = item.Value;
folioNode.AppendChild(node);
}
xmlDocument.AppendChild(folioNode);
XMLDocument로 지금 대 접두사 각 노드와 XML을 포함
난 그 노드의 노드가 절판에서 다른 네임 스페이스에 있었던 것을 의미하는 것이라고 생각하지만 기본 schama 또는 네임 스페이스가 없습니다 속성이 정의되었으므로 요점은 무엇입니까? 접두어를 추가하여 실제로 무엇을 달성하려고합니까? – BenCr
@benCr이 정보가 도움이되기를 바랍니다. – Venki
미안하지만 그렇지 않습니다. 어떤 종류의 오류가 있습니까? – BenCr