문제

자식 요소가 있는 XElement가 있고 부모에서 자식 요소를 제거하여 둘 사이의 모든 참조를 제거하는 경우 자식 XElement는 부모와 동일한 네임스페이스를 갖게 됩니까?

즉, 다음과 같은 XML이 있는 경우:

<parent xmlns:foo="abc">
    <foo:child />
</parent>

하위 요소를 제거하면 하위 요소의 XML이 다음과 같이 보일까요?

<child xmlns="abc" />

또는 좋아한다

<child />
도움이 되었습니까?

해결책

대답은 '예'입니다. 네임스페이스는 하위 항목에도 전파됩니다.

하위 요소 내에 네임스페이스를 지정할 필요는 없습니다.네임스페이스의 범위에는 네임스페이스가 정의된 요소의 닫는 태그까지 모든 요소가 포함됩니다.

여기에서 섹션 #6.1을 참조하세요. http://www.w3.org/TR/REC-xml-names/#scoping

도움이 되길 바랍니다

다른 팁

새 XML 트리에 언급된 요소를 포함하면 동일한 네임스페이스에 있게 됩니다.

var xml1 = XElement.Parse("<a xmlns:foo=\"abc\"><foo:b></foo:b></a>");
var xml2 = XElement.Parse("<a xmlns:boo=\"efg\"></a>");
XNamespace ns = "abc";
var elem = xml1.Element(ns + "b");
elem.Remove();
xml2.Add(elem);
Console.WriteLine(xml1.ToString());
Console.WriteLine(xml2.ToString());

결과:

<a xmlns:foo="abc" />
<a xmlns:boo="efg">
   <b xmlns="abc"></b>
</a>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top