我的项目有以下结构.
在Eclipse中:
myPorjectName
src
com.example.myproject
a.java
com.example.myproject.data
b.xml
Run Code Online (Sandbox Code Playgroud)
在a.java,我想读取b.xml文件.我怎样才能做到这一点?具体来说,a.java我使用了以下代码:
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse (new File("data/b.xml"));
Run Code Online (Sandbox Code Playgroud)
这段代码找不到b.xml.但是,如果我将路径更改为src/com/example/myproject/data/b.xml然后它可以工作.当前位置似乎位于我的项目文件的根目录中.
但我看到其他人的例子,如果b.xml和a.java是在同一个文件夹中,那么我们可以直接使用new File("b.xml").但我尝试放入b.xml相同的文件夹,a.java而不是放入子文件夹,但它仍然无法正常工作.如果这样可行,那么在我的情况下,我应该可以使用new File("data/b.xml"),对吧?我真的不明白为什么这不起作用.
我需要将XML文件读入字典.
我阅读了一些指南,我只是对我不理解的奇怪单词(如节点,XML验证等)感到困惑.那么,请你帮我一下走吧?
我有一个XML文件,以这种格式编写:
<database>
<def number="1" name="one"/>
<def number="2" name="two"/>
</database>
Run Code Online (Sandbox Code Playgroud)
如上所述,我想将它存储在字典中.我该怎么办呢?
我尝试建立一个if语句来检查是否已经创建了一个表.我只想创建一个表,但现在我每次单击按钮存储信息时都会创建一个表.有什么建议?
DataTable dt;
private void InitDataTable()
{
if () {
}
dt = new DataTable();
DataSet ds = new DataSet();
ds.ReadXml("gjesteInfo.xml");
ds.Tables.Add(dt);
DataColumn dc1 = new DataColumn("Fullt navn");
DataColumn dc2 = new DataColumn("Start dato");
DataColumn dc3 = new DataColumn("Antall dager");
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Rows.Add(gjestenavnInput.Text, datoInnsjekk.Text, antallDager.Text);
ds.Merge(dt);
ds.WriteXml("gjesteInfo.xml");
}
private void lagre_Click(object sender, EventArgs e)
{
InitDataTable();
gjesterutenrom.Items.Add(gjestenavnInput.Text);
gjestenavnInput.Text = "";
datoInnsjekk.Text = "";
antallDager.Text = "";
DataSet onClick = new DataSet();
onClick.ReadXml("gjesteInfo.xml");
lagredeGjester.DataSource = onClick.Tables[0];
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用名为lagredeGjester的DataGridView来查看存储在XLM中的信息.
更新的问题:
现在我写了这样的代码: …
任何人都可以指导我如何读取/写入由'NodeJS'中的xml2js.Parser()解析的XML节点值?到目前为止,我的代码是流程:
var parser = new xml2js.Parser();
fs.readFile( './foo.xml', function(err, data) {
parser.parseString(data, function (err, result) {
console.dir(result);
});
});
Run Code Online (Sandbox Code Playgroud)
我想阅读result如下的值
result.to
Run Code Online (Sandbox Code Playgroud)
我的XML:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Run Code Online (Sandbox Code Playgroud) 我试过了:
//${__FileToString(C:\\QC\\qa\\Testlink\\Jmeter\\Expected\\test.xml,ASCII,${xmlFile})};
发现错误消息:
org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval In file: inline evaluation of: ``//<?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/At . . . '' Encountered "<" at line 2, column 1.
此外,我试过${__StringFromFile}并得到相同的错误消息,甚至使用beanshell脚本:
import org.apache.jmeter.services.FileServer;
//Open the file
FileInputStream fstream = new FileInputStream("C://QC//qa//Testlink//Jmeter//Expected//test.xml");
//Get the object of DataInputStream
DataInputStream instream = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(instream));
Run Code Online (Sandbox Code Playgroud) 我已经在LINQ to XML上做了很多阅读,但遗憾的是这个主题(对我来说相当新)根本不会点击.话虽如此,请随时纠正有关正确的XML词汇表的任何错误说法.我的目标是获取XML数据(如下所示),并逐节点地读取它.在这种情况下,我希望能够打开Delimiters节点,以获得" one "," two "和" three "元素的值.接下来,我想从Sources/SourceType节点中获取" one "," two "和" three "元素的值.
<?xml version="1.0"?>
<Values>
<Delimiters>
<one>delim 1</one>
<two>delim 2</two>
<three>delim 3</three>
</Delimiters>
<Sources>
<SourceType>
<one>type 1</one>
<two>type 2</two>
<three>type 3</three>
</SourceType>
</Sources>
</Values>
Run Code Online (Sandbox Code Playgroud)
我已经阅读XMLTextReader过,XMLReader但我想听听你们所有人对我这种情况的最佳做法.
谢谢你的阅读,
埃文
readxml ×6
c# ×3
xml ×3
java ×2
beanshell ×1
datagridview ×1
datatable ×1
dictionary ×1
exists ×1
file-io ×1
filepath ×1
jmeter ×1
linq-to-xml ×1
node.js ×1