XmlDocument를 사용하여 XML 특성 읽기
C#의 XmlDocument를 사용하여 XML 특성을 읽으려면 어떻게 해야 합니까?
다음과 같은 XML 파일이 있습니다.
<?xml version="1.0" encoding="utf-8" ?>
<MyConfiguration xmlns="http://tempuri.org/myOwnSchema.xsd" SuperNumber="1" SuperString="whipcream">
<Other stuff />
</MyConfiguration>
XML 특성 SuperNumber 및 SuperString을 어떻게 읽습니까?
현재 XmlDocument를 사용하고 있는데 XmlDocument의 값을 사용하는 사이에 값이 표시됩니다.GetElementsByTagName()
정말 잘 먹히는군요.속성을 얻는 방법을 모르겠어요?
XmlNodeList elemList = doc.GetElementsByTagName(...);
for (int i = 0; i < elemList.Count; i++)
{
string attrVal = elemList[i].Attributes["SuperString"].Value;
}
XPath에 대해 알아봐야 합니다.일단 사용을 시작하면 목록을 반복하는 것보다 훨씬 더 효율적이고 쉽게 코딩할 수 있습니다.또한 원하는 것을 직접 얻을 수도 있습니다.
그러면 코드는 다음과 같습니다.
string attrVal = doc.SelectSingleNode("/MyConfiguration/@SuperNumber").Value;
XPath 3.0은 2014년 4월 8일에 W3C 권장 사항이 되었습니다.
XmlDocument 대신 XDocument로 마이그레이션한 다음 해당 구문을 원할 경우 Linq를 사용할 수 있습니다.다음과 같은 경우:
var q = (from myConfig in xDoc.Elements("MyConfiguration")
select myConfig.Attribute("SuperString").Value)
.First();
Xml 파일 books.xml을 가지고 있습니다.
<ParameterDBConfig>
<ID Definition="1" />
</ParameterDBConfig>
프로그램:
XmlDocument doc = new XmlDocument();
doc.Load("D:/siva/books.xml");
XmlNodeList elemList = doc.GetElementsByTagName("ID");
for (int i = 0; i < elemList.Count; i++)
{
string attrVal = elemList[i].Attributes["Definition"].Value;
}
지금이다,attrVal
의 가치가 있습니다.ID
.
XmlDocument.Attributes
아마도?(GetNamed 방법이 있는 경우)항상 속성 수집을 반복했지만, 원하는 작업을 수행할 가능성이 있는 항목)
예제 문서가 문자열 변수에 있다고 가정합니다.doc
> XDocument.Parse(doc).Root.Attribute("SuperNumber")
1
XML에 네임스페이스가 포함되어 있으면 다음을 수행하여 속성의 값을 얻을 수 있습니다.
var xmlDoc = new XmlDocument();
// content is your XML as string
xmlDoc.LoadXml(content);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
// make sure the namespace identifier, URN in this case, matches what you have in your XML
nsmgr.AddNamespace("ns", "urn:oasis:names:tc:SAML:2.0:protocol");
// get the value of Destination attribute from within the Response node with a prefix who's identifier is "urn:oasis:names:tc:SAML:2.0:protocol" using XPath
var str = xmlDoc.SelectSingleNode("/ns:Response/@Destination", nsmgr);
if (str != null)
{
Console.WriteLine(str.Value);
}
XML 네임스페이스에 대한 자세한 내용은 여기와 여기를 참조하십시오.
언급URL : https://stackoverflow.com/questions/933687/read-xml-attribute-using-xmldocument
'programing' 카테고리의 다른 글
장고 템플릿에서 수학을 하는 방법은? (0) | 2023.10.22 |
---|---|
jquery 스크립트에서 JSON 응답을 변수로 가져오는 방법 (0) | 2023.10.22 |
Angular의 $httpBackend에서 파일 내용을 반환하는 방법은 무엇입니까? (0) | 2023.10.22 |
git 하위 모듈을 하위 폴더를 가리키도록 변경하는 방법은? (0) | 2023.10.22 |
Oracle 11g에서 여러 데이터베이스를 생성하고 액세스하려면 어떻게 해야 합니까? (0) | 2023.10.22 |