xpath,namespace用法

2012年3月7日 星期三

local-name()用法是忽略namespace
ldims:extension
.SelectSingleNode("//*[local-name='extension']")

在抓xml節點時如果有namespace會需要一些技巧才抓的到節點
sample.xml




方法1.

        XmlDocument oXmlLOMDoc = new XmlDocument();
        oXmlLOMDoc.Load("sample.xml");
        XmlNodeList oLOMList = oXmlLOMDoc.SelectNodes("//*[local-name() = 'lom'] ");
        foreach (XmlNode oList in oLOMList)
        {
            Response.Write(oList.OuterXml);
        }


方法2.
XmlDocument oXmlLOMDoc = new XmlDocument();
        oXmlLOMDoc.Load("sample.xml");

        XmlNamespaceManager xnmgr = new XmlNamespaceManager(oXmlLOMDoc.NameTable);
        xnmgr.AddNamespace("xmlns", "http://www.imsglobal.org/xsd/imsmd_rootv1p2p1");
        XmlNodeList oLOM = oXmlLOMDoc.SelectNodes("/XT_LOM/lom", xnmgr);


多節點


----
......
抓取lom pk



抓取manifest裡identifier值
oList.Attributes["identifier"].Value;


0 意見: