【问题标题】:Search in XML-File via JS/AJAX just for 1 Data通过 JS/AJAX 在 XML 文件中搜索 1 个数据
【发布时间】:2015-05-29 05:34:18
【问题描述】:

我现在差不多 3 天都在寻找解决方案。我发现的只是开放 XML 查找结果!并将它们显示在页面上。我试图使这些样本适应我的需要。但没有得到我想要的结果。

这里是我的 XML 示例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<preiseBau>
    <reinigungEFHETW>
        <id>1</id>
        <suchfeld>Test</suchfeld>
        <immoart>Hallo 1</immoart>
        <zimmer>1</zimmer>
        <qm>10</qm>
        <preis>100</preis>
    </reinigungEFHETW>
    <reinigungEFHETW>
        <id>2</id>
        <suchfeld>Test2</suchfeld>
        <immoart>Hallo 2</immoart>
        <zimmer>2</zimmer>
        <qm>20</qm>
        <preis>200</preis>
    </reinigungEFHETW>
    <reinigungEFHETW>
        <id>3</id>
        <suchfeld>Test3</suchfeld>
        <immoart>Hallo 3</immoart>
        <zimmer>3</zimmer>
        <qm>30</qm>
        <preis>300</preis>
    </reinigungEFHETW>  
</preiseBau>

这是我正在尝试查找并附加到字段的脚本: strSearchterm = str1+str2+str3+str4

// XML Datei laden
$.ajax({
    type: "GET",
    url: "../js/myxml.xml",
    dataType: "xml",
    success: function (xml) {

    $(xml).find('reinigungEFHETW')
            .find("suchfeld:contains('"+strSearchterm+"')")
            .each(function(){
    var x = $(this).find('preis').val()
           alert (x)
    }

也试过这个:

strSearchterm = str1+str2+str3+str4

    // XML Datei laden
    $.ajax({
        type: "GET",
        url: "../js/myxml.xml",
        dataType: "xml",
        success: function (xml) {

        $(xml).find("suchfeld:contains('"+strSearchterm+"')")
                .each(function(){
        alert ($(this).find('preis').text())
               //alert (xl)
        })
        }

我想做什么: 建立一个搜索词;打开 xml 文件,在“suchfeld”中找到 searchterm(唯一!)并将文本附加到“preis”中。

我的代码有什么问题?在 web/youtube 中搜索,我找不到找到 1 个数据的 解决方案! 希望有人可以在正确的方向上给我“踢”:D 最好的祝福 迈克尔

【问题讨论】:

  • 没有包含str1+str2+str3+str4suchfeld
  • 我们怎么知道这是代码问题而不是搜索词问题?案例在术语和价值上是否相同?您是否正确放置了空格?
  • str1+str2+str3+str4前面有一段代码,其中定义了str1、str2、str3和str4。没有任何问题,我没有将其纳入我的问题以缩短我的代码!我已经用警报(strSearchterm)尝试过这个。所以我在joomla 3.x中包含的SEBLOD字段中使用它不会有问题如果我会使用semikolon“;”在我遇到失败的行之后,侧面没有正确显示。
  • 需要创建一个复制问题的演示
  • 复制问题只需使用:var strSearchterm = "Test"。我认为这会产生相同的结果!

标签: javascript jquery xml search


【解决方案1】:

这是我想出的:

var xml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <preiseBau> <reinigungEFHETW> <id>1</id> <suchfeld>Test</suchfeld> <immoart>Hallo 1</immoart> <zimmer>1</zimmer> <qm>10</qm> <preis>100</preis> </reinigungEFHETW> <reinigungEFHETW> <id>2</id> <suchfeld>Test2</suchfeld> <immoart>Hallo 2</immoart> <zimmer>2</zimmer> <qm>20</qm> <preis>200</preis> </reinigungEFHETW> <reinigungEFHETW> <id>3</id> <suchfeld>Test3</suchfeld> <immoart>Hallo 3</immoart> <zimmer>3</zimmer> <qm>30</qm> <preis>300</preis> </reinigungEFHETW> </preiseBau>';

var strSearchterm = 'Test';

$(xml).find("suchfeld:contains('"+strSearchterm+"')")
    .each(function(index, xmlNode){
		$("p").append( $(xmlNode).siblings('preis').text() + " ")
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p></p>

【讨论】:

  • 谢谢杰里米!但这不是我想要的。也许你明白我在这里的意思:maksy-clean.de/angebote。我想在 Preis 字段中显示搜索结果!
  • @Jeremy,你几乎有答案了。只需将$(xmlNode).text() 更改为$(xmlNode).siblings('preis').text()
  • 哦,对了,我们正在寻找“Preis”!我忘记了那个细节。谢谢:)
  • 还有问题要追加!!!在 FireFox 中说错了:prntscr.com/6l6oq0
  • 我在 Firefox 或 Chrome 中使用上面发布的代码完全没有错误。您的错误显示“格式不正确”,因此您的 XML 结构可能有问题。试试 XML 验证器:xmlvalidation.com
猜你喜欢
  • 1970-01-01
  • 2011-01-20
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-10
  • 2018-04-02
  • 1970-01-01
相关资源
最近更新 更多