<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
<author>
<name1> </name1>
<name2> </name2>
<name3> </name3>
</author>
最后重要的一点是,我要创建的这些节点本身可能有几个属性。因此,为了保持上面的例子,它可能是每个作者的出生日期和地点列出。
任何建议都很感激。
我首先要说的是,有很多不同的方法可以做到这一点。在不知道您到底要做什么的情况下,我会给您一些非常灵活和简单的方法,但可能不是最简洁或“正确”的方法。一个更好的解决方案是针对数据编写查询,然后显示结果行,但这可能对您的目的来说是过度的。我不会在这里演示这一点。
理想情况下,您的xml结构更像下面这样。
<books>
<book category='web'>
<title lang='en'>XQuery Kick Start</title>
<authors>
<author>Vaidyanathan Nagarajan</author>
<author>thomas waterloo</author>
<author>malinda gatesauthor>
<author>rusty weatherford</author>
<authors>
<year>2003</year>
<price>49.99</price>
</book>
</books>
其次,GridView并不真正喜欢绑定到嵌套数据。当然有一种方法可以做到这一点,但您最好只是循环遍历数据并将其打印到屏幕上。或者,您可以使用Repeater控件进行调查。
尝试下面的代码。我能够在一个新的ASP.NET web窗体项目中运行此功能。
default.aspx:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<%@ Import Namespace="System.Xml" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<table>
<% foreach ( XmlNode book in myNodes) { %>
<tr>
<% foreach ( XmlNode childElement in book ) {
string title = null;
string year = null;
string price = null;
List<string> authors = new List<string>();
switch (childElement.Name)
{
case "title":
title = childElement.InnerText.ToString();
break;
case "year":
year = childElement.InnerText.ToString();
break;
case "price":
price = childElement.InnerText.ToString();
break;
case "authors":
foreach (XmlNode grandChildElement in childElement)
{
authors.Add(grandChildElement.InnerText);
}
break;
}%>
<td><label><%= title %></label></td>
<td><label><%= year %></label></td>
<td><label><%= price %></label></td>
<td>
<%foreach( string author in authors ){ %>
<label> <%= author %></label><br />
<% } %>
</td>
<% } %>
</tr>
<% } %>
</table>
</asp:Content>
default.aspx.cs:
using System;
using System.Data;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
namespace WebApplication1
{
public partial class _Default : Page
{
protected XmlNodeList myNodes = null;
protected void Page_Load(object sender, EventArgs e)
{
string booksXml = @"<books>
<book category='web'>
<title>Columbus Sailed the Ocean Blue</title>
<year>1492</year>
<price>6 gold doubloons</price>
<authors>
<author>Vaidyanathan Nagarajan</author>
<author>john doe</author>
<author>jane doe</author>
</authors>
</book>
<book category='web'>
<title>Best Book Ever</title>
<year>1776</year>
<price>23.55</price>
<authors>
<author>Robert Frost</author>
</authors>
</book>
<book category='web'>
<title>Hello World!</title>
<year>20013</year>
<price>49.99</price>
</book>
<book category='web'>
<title>1234</title>
<year>1999</year>
<price>69.99</price>
<authors>
<author>Carmen SanDiego</author>
<author>Roger Rabbit</author>
</authors>
</book>
</books>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(booksXml);
//doc.ChildNodes[0] is the entire books element and al of its children
//doing .ChildNodes again gives you all of the book elements
this.myNodes = doc.ChildNodes[0].ChildNodes;
}
}
}
我在一个应用程序上工作,该应用程序向SQL数据库询问不同的值。这里我有一个近40列的表,我的pojos有JavaFX-Properties。所以现在我将填充数据库数据的属性绑定到UI组件,如文本字段等。 我现在的做法是手动将所有ui属性绑定到pojo属性。但这是一个很大的方法,有40个条目可以手动绑定所有属性。 你能告诉我一个更好的方法吗?也许像javafx的表系统一样通过字符串绑定属性? @詹姆
问题内容: 我正在尝试将包含的节点另存为新文件,这是获取新文档并拆分为更小的节点列表: 输出是一个很长的列表,例如: 现在,我想将该节点另存为新的新文件,但是我没有找到按原样返回该节点的函数。谢谢。 问题答案: 您可以将节点转换为字符串,然后将此字符串保存到文件中。 将节点转换为字符串 下面的方法会将节点转换为xml字符串。这是仅JDK的解决方案,不需要依赖项。
我想将XML节点值(从AJAX脚本发送的XML)映射到相应的HTML表单元素中。例如,XML数据; 应通过脚本插入HTML表单: 问题在于,脚本应该通用地适用于所有对象(不能预先知道XML中会给出哪些字段,例如,如果“fieldx”是用XML发送的,则该脚本应该满足document.myform.fieldx表单元素,并具有XML中的相应值)。所以这个脚本应该循环所有XML节点,并尝试将值设置为H
有没有一种方法可以直接将memcached绑定到它下面的本地存储?将用一个例子来解释。假设hbase被用作分布式的后端。memcached的一层被用作缓存层,它可以被认为是hbase的一个完全副本(在某种意义上)。假设系统中有4个节点,其中3个用于hbase并在其顶部有一个memcached层,1个节点用于计算。通常的规范是查找memcached是否有某个键。如果有,取出来并用于计算。如果没有,则
在本章中,我们将学习XML DOM节点。 每个XML DOM都包含称为节点的分层单元信息,DOM描述了这些节点以及它们之间的关系。 节点类型 以下图显示了所有节点类型 - XML中最常见的节点类型是 - 文档节点(Document Node) - 完整的XML文档结构是文档节点。 元素节点(Element Node) - 每个XML元素都是一个元素节点,它也是唯一可以拥有属性的节点类型。 属性节点
问题内容: 您正在使用什么将XML绑定到Java?JAXB,Castor和XMLBeans是一些可用的选择。我所看到的比较都是三到四年了。我愿意接受其他建议。编组/解组性能和易用性特别受关注。 澄清:我不仅要看您使用什么框架,还要看您使用一个框架的理由。 问题答案: JiBX。以前我使用Castor XML,但事实证明JiBX明显更好,特别是在性能方面(从Castor XML到JiBX的一些应用程