使用XmlReader读取xml

移动资本

这是我要阅读的xml

<servers>
   <server name=" PIOU PIOU || OPTIMAL" ca="1" continent_code="EU" 
           country="France" country_code="FR" ip="s1.mymumble.fr" 
           port="20129" region="" url="http://www.mymumble.fr" />
</servers>

现在,当我阅读它时,我就成功获取了“服务器”,并且我也可以阅读其innerxml,即创建了正确的节点。但是当我创建一个带有元素'server'的节点时,该节点为空。我想原因是在“服务器”节点中使用的开始和结束元素的简短形式。但是我的问题是xml来自某个远程服务器,我无法对其进行修改,因此必须以编写方式进行读取。

这是我读取XML的代码:

List<XmlNode> nodeList = new List<XmlNode>();
XmlDocument doc = new XmlDocument();

while (reader.Read())
{
    //keep reading until we see my element
    if (reader.Name.Equals("server") && (reader.NodeType == XmlNodeType.Element))
    {
        XmlNode myNode = doc.ReadNode(reader);
        Debug.Log(reader.IsEmptyElement ? "its empty" : "not empty");
        //this always prints "its empty"        
        nodeList.Add(myNode);
    }        
}

foreach( XmlNode node in nodeList)
{
    Debug.Log("child:\t"+node.FirstChild.InnerXml);
}
吉姆·米歇尔(Jim Mischel)

请参阅IsEmptyElement的文档特别是,此示例:

<item num="123"/> (IsEmptyElement is true).
<item num="123"></item> (IsEmptyElement is false, although element content is empty).

您的节点被认为是空的,因为它使用缩写形式。没有元素“内容”,但是有属性。

您是否检查了所创建的节点(即myNode)以查看其包含属性?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用XmlReader类读取XML

来自分类Dev

使用XMLReader从xml文件读取双

来自分类Dev

使用Powershell XMLReader读取xml文件而不锁定xml文件

来自分类Dev

在C#中使用XmlReader读取特定深度的XML ELEMENTS

来自分类Dev

使用XmlReader读取xml文件仅读取第一个元素

来自分类Dev

如何使用php xmlreader读取XML文件的仅一部分

来自分类Dev

使用XmlReader C#读取重复块

来自分类Dev

当使用ReadElementContentAsString读取XmlReader'Text'是无效的XmlNodeType

来自分类Dev

当使用ReadElementContentAsString读取XmlReader'Text'是无效的XmlNodeType

来自分类Dev

使用XmlReader C#读取重复块

来自分类Dev

使用XmlReader如何读取过去的空元素?

来自分类Dev

如何在不使用XmlReader取消引用实体的情况下读取XML节点的文本元素

来自分类Dev

使用XMLReader和foreach进行XML解析

来自分类Dev

如何使用XmlReader及其结束标记解析XML?

来自分类Dev

如何使用XmlReader从XML中的特定子元素获取价值?

来自分类Dev

使用C#中的XMLReader忽略XML中的父节点

来自分类Dev

如何使用XMLreader解析此大型xml文件?

来自分类Dev

XmlReader,XmlWriter-使用流连接XML文件

来自分类Dev

XmlReader-读取子级

来自分类Dev

使用PIG读取XML

来自分类Dev

使用SAXParser读取XML

来自分类Dev

使用TSQL从XML读取

来自分类Dev

使用Golang读取XML

来自分类Dev

使用Boost读取xml

来自分类Dev

使用XmlDocument读取XML

来自分类Dev

使用SelectSingleNode读取XML

来自分类Dev

使用XStream读取XML

来自分类Dev

使用xmldocument读取xml

来自分类Dev

使用LINQ从XML读取