C# 使用c使用XmlDocument在根节点中获取schemalocation#
我必须从数据表中填充一个XML文件,我的问题是我必须在根节点中获取schemaLocation,为此,我使用下面的代码,然后我得到了这个结果,我不知道p1从哪里来请尝试此代码并告诉我这是否对您有帮助 特别是在这段代码中,我解析XML文件并获取根元素: 然后使用它选择所有名为schemaLocation的属性。只有一个,因此您可以使用SelectSingleNode: 变量 schemaLocationAttribute contanisC# 使用c使用XmlDocument在根节点中获取schemalocation#,c#,xml,namespaces,C#,Xml,Namespaces,我必须从数据表中填充一个XML文件,我的问题是我必须在根节点中获取schemaLocation,为此,我使用下面的代码,然后我得到了这个结果,我不知道p1从哪里来请尝试此代码并告诉我这是否对您有帮助 特别是在这段代码中,我解析XML文件并获取根元素: 然后使用它选择所有名为schemaLocation的属性。只有一个,因此您可以使用SelectSingleNode: 变量 schemaLocationAttribute contanisValue属性,通过该属性可以获得实际值 X
Value
属性,通过该属性可以获得实际值
XmlReader xmlReader = XmlReader.Create("MyXML.xml");
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(xmlReader);
XmlElement root = xmlDocument.DocumentElement;
XmlNode schemaLocationAttribute = root.SelectSingleNode("//@*[local-name()='schemaLocation']");
//Single schema value
string schemaValue = schemaLocationAttribute.Value;
//If you have multiple values in your schema
//you have to store it inside of array
string[] multipleShcemavalues = schemaLocationAttribute.Value.Split(null);
//And you have to choose whuickelement you want to use
string chooosendShcema = multipleShcemavalues[1]; //For example
在生成的XML中,p1是一个名称空间。您发布的代码(在屏幕截图中)正在定义名称空间“xsi”,我不确定为什么您的结果会生成p1,除非您在未显示的地方重命名xsi
XmlDocument doc = new XmlDocument();
XmlDeclaration declaire = doc.CreateXmlDeclaration("1.0", "utf-8", null);
XmlElement rootnode = doc.CreateElement("BMECAT");
doc.InsertBefore(declaire, doc.DocumentElement);
doc.AppendChild(rootnode);
rootnode.SetAttribute("version", "2005");
XmlAttribute atr = doc.CreateAttribute("xsi", "schemaLocation", "http://www.w3.org/2001/XMLSchema-instance");
atr.Value = "http://www.adlnet.org/xsd/adlcp.vlp3";
rootnode.SetAttributeNode(atr);
rootnode.Attributes.Append(atr);
在代码中:
XmlAttribute atr = doc.CreateAttribute("xsi", "schemaLocation", "http://www.w3.org/2001/XMLSchema-instance");
“xsi”是它生成的名称空间的名称,您可以在那里控制它。这导致:
<?xml version="1.0" encoding="utf-8"?>
<BMECAT version="2005" xsi:schemaLocation="http://www.adlnet.org/xsd/adlcp.vlp3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
请发布实际代码而不是屏幕截图。我在以下位置找到架构:
XmlElement.SetAttributeValue (localname, prefix, namespace, value)