我正在尝试使用MySQL查询:
mysql -h hostName -u username -p databaseName --xml -e 'select * from example' > testData.xml
这将输出一个如下所示的文件:
<?xml version="1.0"?>
<resultset statement="select * from equipment
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<row>
<field name="id">5</field>
<field name="name">arduino</field>
<field name="quantity">50</field>
</row>
<row>
<field name="id">7</field>
<field name="name">raspberry pi</field>
<field name="quantity">50</field>
</row>
</resultset>
然后我尝试使用XMLHttpRequest来获取其中一个字段的文本值。
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "testData.xml", true);
xhttp.send();
function myFunction(xml) {
var xmlDoc = xml.responseXML;
document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("row")[0].childNodes[0].nodeValue;
}
但是,“demo”中没有显示任何内容(元素是段落),Chrome控制台中不会显示任何错误。我的Javascript不是最好的,但我已经使用W3Schools示例测试了代码,代码工作正常。执行childElementCount将返回正确的'3',因此它知道字段在那里。所以我的假设是XML的格式不正确,更确切地说是“field name =”id“”部分,因为这在其他XML文件示例中显示不同。
有没有办法从MySQL查询返回XML,该查询将正常运行代码?或者有没有办法让这些代码正确运行。