如何拆分 XMLHttpRequest 中的值?
how to split values in XMLHttpRequest?
我有 xmlhttpRequest 用于在课程列表中搜索
我的功能之一是按程序搜索...但是有些课程有不止一个程序所以我希望能够只写一个程序的编号并找到他们有这个程序的所有课程甚至课程有其他程序
这是我的 xml 文件的一部分
当我在输入文本中写入 4108 时,我想输出包含此数字的课程
<?xml version="1.0" encoding="iso-8859-1"?>
<tousCours>
<cours>
<sigle>GEN0103</sigle>
<titre>Chimie générale</titre>
<prgs>
<pr>0000</pr>
</prgs>
<credits>3</credits>
</cours>
<cours>
<sigle>GEN0123</sigle>
<titre>Physique mécanique et optique</titre>
<prgs>
<pr>0000</pr>
</prgs>
<credits>3</credits>
</cours>
<cours>
<sigle>GEN1002</sigle>
<titre>Ingénierie et éthique</titre>
<prgs>
<pr>7643</pr>
</prgs>
<prealable>GEN1000, GEN1001</prealable>
<credits>2</credits>
</cours>
<cours>
<sigle>GEN1023</sigle>
<titre>Matériaux I</titre>
<prgs>
<pr>7643</pr>
</prgs>
<credits>3</credits>
</cours>
<cours>
<sigle>GEN1033</sigle>
<titre>Statique</titre>
<prgs>
<pr>7643</pr>
</prgs>
<credits>3</credits>
</cours>
<cours>
<sigle>GEN1041</sigle>
<titre>Ingénierie et entreprises</titre>
<prgs>
<pr>7643</pr>
</prgs>
<credits>3</credits>
</cours>
<cours>
<sigle>GEN1051</sigle>
<titre>Ingénierie et entreprises II</titre>
<prgs>
<pr>4108</pr>
<pr>7643</pr>
<pr>7833</pr>
</prgs>
<credits>3</credits>
</cours>
这是我的 xmlhttprequest
xhttp = new XMLHttpRequest();
function rechercherProg() {
var texte2 = document.getElementById("prog").value;
xhttp.open("GET", "WebForm3.aspx/?prog=" + texte2 + "substring-after(',')", false);
xhttp.send();
Afficher(xhttp.responseXML);
}
这是我的服务器端代码(linq to xml)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
var text = Request.Params[0];
XDocument xdoc = XDocument.Load(Server.MapPath("~/cours.xml"));
XDocument xresp = new XDocument(new XElement("tousCours"));
if (text != "")
{
IEnumerable<XElement> prog =
from b in xdoc.Elements("tousCours").Elements("cours")
where (string)b.Element("prgs/pr") == text
select b;
foreach (XElement xEle in prog)
xresp.Element("tousCours").Add(xEle);
}
Response.Clear();
Response.ContentType = "text/xml";
Response.ContentEncoding = System.Text.Encoding.UTF8;
xresp.Save(Response.Output);
Response.End();
这是我的table
我有一个完整的 table 我所有的课程,我希望我搜索的结果出现在另一个 table
喜欢这个
我认为你想要
而不是 where (string)b.Element("prgs/pr") == text
where b.Element("prgs").Elements("pr").Any(pr => (string)pr == text)
如果您不仅想要现有文档中的 select 和 return 元素,而且还想将 pr
元素减少到要查找的值,那么使用例如
if (text != "")
{
xresp.Root.Add(
from b in doc.Elements("tousCours").Elements("cours")
where b.Element("prgs").Elements("pr").Any(pr => (string)pr == text)
select new XElement(b.Name,
b.Elements().Except(b.Elements("prgs")),
new XElement("prgs",
new XElement("pr", text))));
}
这仍然按照已经建议的相同方式查找元素,但构建新内容,消除任何与 text
值不同的 pr
元素,以便代替
<cours>
<sigle>GEN1051</sigle>
<titre>Ingénierie et entreprises II</titre>
<prgs>
<pr>4108</pr>
<pr>7643</pr>
<pr>7833</pr>
</prgs>
<credits>3</credits>
</cours>
代码return仅
<tousCours>
<cours>
<sigle>GEN1051</sigle>
<titre>Ingénierie et entreprises II</titre>
<credits>3</credits>
<prgs>
<pr>4108</pr>
</prgs>
</cours>
</tousCours>
我有 xmlhttpRequest 用于在课程列表中搜索 我的功能之一是按程序搜索...但是有些课程有不止一个程序所以我希望能够只写一个程序的编号并找到他们有这个程序的所有课程甚至课程有其他程序
这是我的 xml 文件的一部分 当我在输入文本中写入 4108 时,我想输出包含此数字的课程
<?xml version="1.0" encoding="iso-8859-1"?>
<tousCours>
<cours>
<sigle>GEN0103</sigle>
<titre>Chimie générale</titre>
<prgs>
<pr>0000</pr>
</prgs>
<credits>3</credits>
</cours>
<cours>
<sigle>GEN0123</sigle>
<titre>Physique mécanique et optique</titre>
<prgs>
<pr>0000</pr>
</prgs>
<credits>3</credits>
</cours>
<cours>
<sigle>GEN1002</sigle>
<titre>Ingénierie et éthique</titre>
<prgs>
<pr>7643</pr>
</prgs>
<prealable>GEN1000, GEN1001</prealable>
<credits>2</credits>
</cours>
<cours>
<sigle>GEN1023</sigle>
<titre>Matériaux I</titre>
<prgs>
<pr>7643</pr>
</prgs>
<credits>3</credits>
</cours>
<cours>
<sigle>GEN1033</sigle>
<titre>Statique</titre>
<prgs>
<pr>7643</pr>
</prgs>
<credits>3</credits>
</cours>
<cours>
<sigle>GEN1041</sigle>
<titre>Ingénierie et entreprises</titre>
<prgs>
<pr>7643</pr>
</prgs>
<credits>3</credits>
</cours>
<cours>
<sigle>GEN1051</sigle>
<titre>Ingénierie et entreprises II</titre>
<prgs>
<pr>4108</pr>
<pr>7643</pr>
<pr>7833</pr>
</prgs>
<credits>3</credits>
</cours>
这是我的 xmlhttprequest
xhttp = new XMLHttpRequest();
function rechercherProg() {
var texte2 = document.getElementById("prog").value;
xhttp.open("GET", "WebForm3.aspx/?prog=" + texte2 + "substring-after(',')", false);
xhttp.send();
Afficher(xhttp.responseXML);
}
这是我的服务器端代码(linq to xml)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
var text = Request.Params[0];
XDocument xdoc = XDocument.Load(Server.MapPath("~/cours.xml"));
XDocument xresp = new XDocument(new XElement("tousCours"));
if (text != "")
{
IEnumerable<XElement> prog =
from b in xdoc.Elements("tousCours").Elements("cours")
where (string)b.Element("prgs/pr") == text
select b;
foreach (XElement xEle in prog)
xresp.Element("tousCours").Add(xEle);
}
Response.Clear();
Response.ContentType = "text/xml";
Response.ContentEncoding = System.Text.Encoding.UTF8;
xresp.Save(Response.Output);
Response.End();
这是我的table
我有一个完整的 table 我所有的课程,我希望我搜索的结果出现在另一个 table
喜欢这个
我认为你想要
而不是where (string)b.Element("prgs/pr") == text
where b.Element("prgs").Elements("pr").Any(pr => (string)pr == text)
如果您不仅想要现有文档中的 select 和 return 元素,而且还想将 pr
元素减少到要查找的值,那么使用例如
if (text != "")
{
xresp.Root.Add(
from b in doc.Elements("tousCours").Elements("cours")
where b.Element("prgs").Elements("pr").Any(pr => (string)pr == text)
select new XElement(b.Name,
b.Elements().Except(b.Elements("prgs")),
new XElement("prgs",
new XElement("pr", text))));
}
这仍然按照已经建议的相同方式查找元素,但构建新内容,消除任何与 text
值不同的 pr
元素,以便代替
<cours>
<sigle>GEN1051</sigle>
<titre>Ingénierie et entreprises II</titre>
<prgs>
<pr>4108</pr>
<pr>7643</pr>
<pr>7833</pr>
</prgs>
<credits>3</credits>
</cours>
代码return仅
<tousCours>
<cours>
<sigle>GEN1051</sigle>
<titre>Ingénierie et entreprises II</titre>
<credits>3</credits>
<prgs>
<pr>4108</pr>
</prgs>
</cours>
</tousCours>