반응형
XElement 네임 스페이스 (방법?)
다음과 같은 노드 접두사를 사용하여 xml 문서를 만드는 방법 :
<sphinx:docset>
<sphinx:schema>
<sphinx:field name="subject"/>
<sphinx:field name="content"/>
<sphinx:attr name="published" type="timestamp"/>
</sphinx:schema>
new XElement("sphinx:docset")
예외가 발생하는 것처럼 실행하려고 할 때
처리되지 않은 예외 : System.Xml.XmlException : ':'문자, 16 진수 값 0x3A는 이름에 포함될 수 없습니다.
System.Xml.XmlConvert.VerifyNCName (String name, ExceptionType exceptionTyp e)
at System.Xml.Linq.XName..ctor (XNamespace ns, String localName)
at System.Xml.Linq.XNamespace.GetName (String localName)
at System .Xml.Linq.XName.Get (문자열 확장 이름)
LINQ to XML에서는 정말 쉽습니다.
XNamespace ns = "sphinx";
XElement element = new XElement(ns + "docset");
또는 "별칭"이 제대로 작동하여 예제처럼 보이게하려면 다음과 같이하십시오.
XNamespace ns = "http://url/for/sphinx";
XElement element = new XElement("container",
new XAttribute(XNamespace.Xmlns + "sphinx", ns),
new XElement(ns + "docset",
new XElement(ns + "schema"),
new XElement(ns + "field", new XAttribute("name", "subject")),
new XElement(ns + "field", new XAttribute("name", "content")),
new XElement(ns + "attr",
new XAttribute("name", "published"),
new XAttribute("type", "timestamp"))));
그 결과 :
<container xmlns:sphinx="http://url/for/sphinx">
<sphinx:docset>
<sphinx:schema />
<sphinx:field name="subject" />
<sphinx:field name="content" />
<sphinx:attr name="published" type="timestamp" />
</sphinx:docset>
</container>
문서의 네임 스페이스를 읽고 다음과 같은 쿼리에서 사용할 수 있습니다.
XDocument xml = XDocument.Load(address);
XNamespace ns = xml.Root.Name.Namespace;
foreach (XElement el in xml.Descendants(ns + "whateverYourElementNameIs"))
//do stuff
참고 URL : https://stackoverflow.com/questions/4985974/xelement-namespaces-how-to
반응형
'developer tip' 카테고리의 다른 글
Request.RawUrl 대 Request.Url (0) | 2020.11.01 |
---|---|
Android에서 어댑터 / ListView를 새로 고치는 가장 좋은 방법 (0) | 2020.11.01 |
FormData 인터페이스를 구현하지 않는 개체에서 'append'가 호출되었습니다. (0) | 2020.10.31 |
선택 결과를 변수에 할당하는 방법은 무엇입니까? (0) | 2020.10.31 |
jquery는 특정 형식에서 모든 입력을 가져옵니다. (0) | 2020.10.31 |