- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在实现 IXmlSerializable 的 ReadXml() 方法,我认为使用 XPath 可能是执行此操作的最佳方式。
但是,ReadXml() 需要正确处理阅读器位置。
假设我的 WriteXml() 产生了这样的东西:
<ObjectName>
<SubNode>2</SubNode>
<SubNode>2</SubNode>
</ObjectName>
有没有比下面的(这种糟糕的方法)更好的方法来确保 Reader 之后正确定位?
public override void ReadXml(System.Xml.XmlReader reader)
{
reader.Read(); /* Read Opening tag */
/* Using reader.ReadStartElement("ObjectName") reads forward a node,
i.e. current node becomes the first <SubNode>
whereas Read() doesn't even when the documentation says they both do
*/
XPathNavigator n = MakeXPathNavigator(reader.ReadSubtree());
XPathNodeIterator nodes = n.Select(".//SubNode");
while (nodes.MoveNext())
{
/* Do stuff with nodes */
_values.Add(nodes.Current.ValueAsInt);
}
reader.Skip(); /* Skip reader forward */
}
public static XPathNavigator MakeXPathNavigator(XmlReader reader)
{
try
{
return new XPathDocument(reader).CreateNavigator();
}
catch(XmlException e)
{
throw e; /* Maybe hide/deal with exception */
}
}
最佳答案
我怀疑如果经常使用该方法,您可能会遇到一些性能问题。由于您的 xml 相对简单,我强烈怀疑您直接使用 XmlReader
会做得更好......
...但是这样做并不容易; IMO,最好尽量避免实现 IXmlSerializable
(只是使用常规集合属性等)——这是导致错误和挫败感的常见原因。
关于c# - 使用 XPath 实现 IXmlSerializable ReadXml() 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/896229/
这是一个简单的示例,用于将 xml 文件读入 WebRowSet 对象,然后将数据从该对象加载到数据库。 import javax.sql.rowset.RowSetProvider; import
以下是从 Web 服务获取 xml 数据然后使用 ReadXml 方法读取数据集的代码。此 Xml 具有每个表行的 ID 和 MyDate 标记(因此 table(0) 将具有 ID 和 MyDate
我使用以下代码将数据集保存在 sql 数据库中的 xml 列中。 XmlDataDocument dd = new XmlDataDocument(dataset); 并使用此 xml 文档作为 sq
所以我正在检查 Java 的示例,并注意到使用 InTableList.doc 的示例/InTableList来自https://github.com/aspose-words/Aspose.Word
我正在使用 DataTable.WriteXml() 方法将 DataTable 写入 xml。这需要几秒钟,我认为这非常好。 但是,使用 ReadXml() 方法读取文件(38MB 大小,26000
我想使用 dataset.readXML(filename) 将我的 xml 读入数据集 想法是加载 2 个表,然后使用 LINQ 连接它们并将查询结果转储到 sql 数据库中。 我有以下 xml
我正在使用 ReadXML 方法将字符串读入 DataSet。当我尝试返回路径错误中的无效字符时。如果我在 IE 中将字符串作为 xml 文件保存并打开,它会在 encoding="UTF-16" 行
我正在实现 IXmlSerializable 的 ReadXml() 方法,我认为使用 XPath 可能是执行此操作的最佳方式。 但是,ReadXml() 需要正确处理阅读器位置。 假设我的 Writ
本文整理了Java中org.apache.knox.gateway.util.XmlUtils.readXml()方法的一些代码示例,展示了XmlUtils.readXml()的具体用法。这些代码示例
我有一个格式如下的 xml 文件: Propeterty1 Propeterty2 subProp1 subProp2
我有一个 xml 文件,我正在使用 DataSet.ReadXML 将它加载到 DataTable 中。这个 XML 有一个内部 DTD 定义。我认为 DataTable.ReadXML 在将 XML
我正在使用 C# 4.5/Visual Studio 2012 尝试将 XML 文件加载到数据集。我在这里阅读了说明: http://msdn.microsoft.com/en-us/library/
我想在一个类上实现 IXmlSerializable,并且只覆盖 ReadXml 或 WriteXml,但不能同时覆盖两者。如果我没有在此类上实现 IXMLSerializable,XMLSerial
我有一个简单的 win 表单应用程序,可以将数据集加载/保存到 XML 文件中。只要我使用的是文件共享或本地文件系统,一切都很好。 在我的 Windows 8 机器上使用标准的打开文件/保存文件对话框
我是一名优秀的程序员,十分优秀!