반응형
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")
나는 예외를 받습니다.
처리되지 않은 예외:시스템.Xml.Xml 예외:':' 문자(16진수 값 0x3A)는 이름에 포함할 수 없습니다.
시스템에서.Xml.XmlConvert.NCName 확인(문자열 이름, 예외)유형 예외유형)
시스템에서.Xml.Linq.XName..ctor(XName 공백, 문자열 localName)
시스템에서.Xml.Linq.XNamespace.GetName(String localName)
시스템에서.Xml.Linq.XName.Get(String expandedName)
LINQ에서 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
반응형
'programing' 카테고리의 다른 글
Wordpress Multisite에서 HTACCCESS를 사용하여 WP-CONTER URL에 하위 디렉토리 추가 (0) | 2023.11.07 |
---|---|
왜 Py_를 해야 합니까?C에서 Py_None을 반환하기 전에 INCRECF(Py_None)가 필요합니까? (0) | 2023.11.07 |
SQL(Oracle)의 느낌표 (0) | 2023.11.07 |
오라클에서 예약된 작업을 삭제하는 방법 (0) | 2023.11.07 |
exec에서 출력 잡기 (0) | 2023.11.07 |